c#学习笔记01——引用&类
- 数据类型
- 值类型
bool 布尔值 True 或 False False byte 8 位无符号整数 0 到 255 0 char 16 位 Unicode 字符 U +0000 到 U +ffff '\0' decimal 128 位精确的十进制值,28-29 有效位数 (-7.9 x 1028 到 7.9 x 1028) / 100 到 28 0.0M double 64 位双精度浮点型 (+/-)5.0 x 10-324 到 (+/-)1.7 x 10308 0.0D float 32 位单精度浮点型 -3.4 x 1038 到 + 3.4 x 1038 0.0F int 32 位有符号整数类型 -2,147,483,648 到 2,147,483,647 0 long 64 位有符号整数类型 -923,372,036,854,775,808 到 9,223,372,036,854,775,807 0L sbyte 8 位有符号整数类型 -128 到 127 0 short 16 位有符号整数类型 -32,768 到 32,767 0 uint 32 位无符号整数类型 0 到 4,294,967,295 0 ulong 64 位无符号整数类型 0 到 18,446,744,073,709,551,615 0 ushort 16 位无符号整数类型 0 到 65,535 0 - 引用类型
- object类
- 装箱&拆箱
- 指针类型
- 注意和c++的区别 *关键字只能紧跟在类型后
- 方法
- 访问修饰符:static,virtual,extern,override,new
- 声明方法
- 静态方法与实例化方法的区别 就是说如果不是类或接口的方法,只是和他们没有关系的方法就用static
- 通过形参修改实参:rec,out//rec需要初始化,out不需要 类比c++中&
- 托管
托管代码 (managed code) :由公共语言运行库环境(而不是直接由操作系统)执行的代码。托管代码应用程序可以获得公共语言运行库服务,例如自动垃圾回收、运行库类型检查和安全支持等。这些服务帮助提供独立于平台和语言的、统一的托管代码应用程序行为。 Unmanaged Code - 非托管代码 :在公共语言运行库环境的外部,由操作系统直接执行的代码。非托管代码必须提供自己的垃圾回收、类型检查、安全支持等服务;它与托管代码不同,后者从公共语言运行库中获得这些服务。非托管代码的英文名是Unmanaged Code ,它是在公共语言运行库环境的外部,由操作系统直接执行的代码。
- 类
- 普通类
- 字段
- 属性:get/set
- 方法
- 构造函数:
- 析构函数/垃圾回收:没有修饰符 无法主动调用 无法继承或重载
- this关键字/当前实例的引用
- 类成员的可访问性:pubic,private,protected,internal,protected internal
| pubic | 成员公共访问,没有任何限制 |
| private | 成员私有访问,是允许访问的最低级别,私有成员只有在声明他们的类中才可被访问。 |
| protected | 类成员声明为受保护的,只有使用该类作为基类的派生类才能访问该成员 |
| internal | 成员访问是内部的,只有在同一程序集的文件中,内部类型的成员才是可访问的 |
| protected internal | 只有在同一程序集的派生类才能访问这个成员 |
- 类的嵌套:内部类可直接访问外部类的静态成员;通过外部类的对象访问非静态成员
- 抽象类
- 静态类 仅包含静态成员;不能被实例化,不能包含构造函数(已经作为实例存在;密封的
- 静态类成员:只与类有关与实例无关;通过类名调用
- 静态构造函数:用于初始化任何静态数据,或用于执行仅需执行一次的特殊操作
- 静态构造函数既没有访问修饰符,也没有参数
- 在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类
- 无法直接调用静态构造函数
- 继承:派生类隐式获得基类的除构造函数和析构函数以外的所有成员
- 规则:
- 派生类应当是对基类的扩展。派生类可以添加新的成员,但不能去除已经继承的成员。
- 派生类只能从一个类继承 要实现多重继承 可以通过接口来实现
- 继承可以传递
- 构造函数和析构函数不能被继承
- 派生类如果定义了与继承而来的成员同名的新成员,就可以覆盖已继承的成员,但这并不意味者删除了被覆盖的成员
- 类可以定义虚方法、虚属性一己虚索引指示器,它的派生类能够重载这些成员,从而可以展现出多态性。
- 规则:
- 多态性:
- 使用新的派生类成员替换基类成员——关键字new
public class A
{
public void Method() { }
public int _A;
public int AA
{
get { return ; }
}
}
public class B:A
{
public new void Method() { }
public new int _A;
public new int AA
{
get { return ; }
}
}
/*全部替换了*/ - 重写虚拟的基类成员——virtual&override
public class A
{
public virtual void Method() { } public virtual int AA
{
get { return ; }
}
}
public class B:A
{
public override void Method() { } public override int AA
{
get { return ; }
}
}
- 使用新的派生类成员替换基类成员——关键字new
c#学习笔记01——引用&类的更多相关文章
- C++ GUI Qt4学习笔记01
C++ GUI Qt4学习笔记01 qtc++signalmakefile文档平台 这一章介绍了如何把基本的C++只是与Qt所提供的功能组合起来创建一些简单的图形用户界面应用程序. 引入两个重要概 ...
- SaToken学习笔记-01
SaToken学习笔记-01 SaToken版本为1.18 如果有排版方面的错误,请查看:传送门 springboot集成 根据官网步骤maven导入依赖 <dependency> < ...
- 软件测试之loadrunner学习笔记-01事务
loadrunner学习笔记-01事务<转载至网络> 事务又称为Transaction,事务是一个点为了衡量某个action的性能,需要在开始和结束位置插入一个范围,定义这样一个事务. 作 ...
- (转)Qt Model/View 学习笔记 (七)——Delegate类
Qt Model/View 学习笔记 (七) Delegate 类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也 ...
- (转)Qt Model/View 学习笔记 (五)——View 类
Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...
- Typescript 学习笔记五:类
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- Redis:学习笔记-01
Redis:学习笔记-01 该部分内容,参考了 bilibili 上讲解 Redis 中,观看数最多的课程 Redis最新超详细版教程通俗易懂,来自 UP主 遇见狂神说 1. Redis入门 2.1 ...
- Caliburn.Micro学习笔记(一)----引导类和命名匹配规则
Caliburn.Micro学习笔记目录 用了几天时间看了一下开源框架Caliburn.Micro 这是他源码的地址http://caliburnmicro.codeplex.com/ 文档也写的很详 ...
- PHP 学习笔记 01
例子: 为什么要学PHP 主观原因: 前段时间在学校处理了毕业的一些事情,回到上海后开始了找工作的旅程.意向工作是WPF开发或者ASP.NET 作为后端的WEB开发. 陆陆续续一直在面试,其中有一家公 ...
随机推荐
- Docker部署Python应用程序
Docker部署Python应用程序 1. 单个py文件部署 生成Dockerfile 文件 插件用的豆瓣的镜像,,重置时间(容器的默认时间是UTC时间与宿主机的相差8小时). 文中需要三个插件(pe ...
- java开发 中台
中台就是接入层啊,一般有中台的都是比较大的项目,后台会分为很多模块,比如订单模块,比如会员模块,接入层需要做的就是对数据的封装,权限的过滤,以及各种安全什么的, 前台需要什么数据,接入层去对应的后台微 ...
- 留学生如何把控好Essay写作结构
留学生在国内写过作文,但是对于essay写作到底了解多少呢?大家觉得essay写作太难是语言问题,但是大家要明白,老师对于内容的考察远重于对语言的考察.同学们的essay写作如果能做到言之有理,自圆其 ...
- c++程序—浮点数
#include<iostream> using namespace std; int main() { //2.单精度float //3.双精度double //默认情况下会输出6位有效 ...
- Mysql :分支结构—if函数
一分支结构 1.if函数 功能:实现简单的双分支 语法: IF (表达式1,表达式2,表达式3) 执行顺序 如果表达式1成立 则if函数返回表达式2的值,否则返回表达式3的值 应用: 任何地方
- Dubbo与SpringCloud
dubbo和springcloud都是微服务框架,各自有各自的注册中心. dubbo监控中心:zookeeper,redis 提供高性能和透明化的RPC远程调用方案,SOA服务治理方案. 核心部分: ...
- jQuery搜索框输入实时进行查询
在手机上,我们期望在搜索框中输入数据,能够实时更新查询出来的内容,不需要按回车. 实现方式为: $(".search").bind("input propertychan ...
- windows 2008R2 搭建web实现https访问
一.安装服务. 二.IIS创建证书申请. 三.ca颁发证书 三.创建网站. 创建一个新建文件夹,并在文件夹中创建一个txt文件. 把新建文本文档.txt重命名为index.html 完成证书申请(导入 ...
- Git--记一次丢失本地记录但是代码已提交到gerrit
参考 https://blog.csdn.net/yucendulang/article/details/76199913 https://stackoverflow.com/questions/28 ...
- Ubuntu无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?
转自:http://hi.baidu.com/xiaobaishu 鸣谢: xuleibjtu2010的原创空间 1.终端输入 ps -aux ,列出进程.找到含有apt‘-get的进程,直接sud ...