C#基础笔记

C#数据类型:值类型和引用类型 (两者相互转换时进行装箱和拆箱)

值类型:
简单类型(整数类型、布尔类型、字符类型、实数类型)、
结构类型(struct,结构类型可以作为另一个结构的成员类型。每个变量叫成员)、
枚举类型(为一组在逻辑上密不可分的整数值提供便于记忆的符号。每个整型变量叫元素)。

引用类型(引用类型实际存储数据引用值的地址):
类(数据成员(常量、域、事件)、函数成员(方法、属性、索引指示器、运算符、构造函数、析构函数)、嵌套类型)、
类支持集成机制——代码重用和设计重用
System.object类和System.string类
注意:类和结构都包含了自己的成员,区别在于类是引用类型、结构是值类型。

代表(delegate,相当于指针原型,而且相对安全)、
C和C++中,滥用指针给程序的安全性埋下了隐患,所以C#中取消了指针的概念,用的话要声明“非安全”unsafe。
注意:不能有返回值、不能带有输出类型的参数。
delegate int MyDelegate();
MyClass mc = new MyClass();
MyDeleaget d1 =new MyDelegate(mc.InstanceMethod);
d1();
//指向静态方法
MyDelegate d2 = new MyDelegate(MyClass.StaticMethod);
d2();
数组(System.Array)、
数组是一组类型相同的有序数据,按照数组名、数据元素的类型和维数来进行描述。
接口。

C#装箱(boxing)和拆箱(unboxing):
值类型和引用类型之间的转换,称为绑定链接。
装箱:把值类型转换成引用类型,也就是创建一个对象实例并把这个值赋值给它
拆箱:把引用类型转换成值类型,
注意:转换时必须遵循类型兼容原则。

C#变量(variable):
静态变量、非静态变量、数组元素、值参数、引用参数(ref int a)、输出参数(out int b)、局部变量。
常量 public const double d=1.0;

C#类型转换:
隐式转换和显示转换(强制类型转换)

C#表达式:
逻辑与操作符 & 位运算,a和b均为1,则为1
逻辑或操作符 | 位运算,a和b有1则为1。
条件与操作符 && 二元操作符,a和b返回值相同时为真。
条件或操作符 || 二元操作符,a和b有真则为真。

C#类:
类的修饰符:
public 不限制
protected 只能从所在类和派生类进行访问
internal 当前类访问
private 对.net中的应用程序或库才能访问

C#方法:
参数类型,值参数、引用型参数(ref)、输出参数(out)、数组参数(params)
值参数:传递参数(形参)时把实参拷贝后的值传给方法,以保证实际值是安全的。
引用参数:不开辟新的内存,传递形参时是把实参在内存中的地址传递给方法。

C#域和属性:
域就是简单的成员变量。域变量,静态域静态变量,非静态域==非静态变量
静态:无论建立多少个该类的实例,内存中只存在一个静态数据的拷贝。当这个类的第一个实例创建时,域被初始化。以后在进行类的实例化时,不在对其进行初始化,所有属于这个类的实例共享一个副本。
非静态:每次实例化都会拥有一份单独的拷贝。
只读域:static readonly 和 const 区别,const表达式的值在编译时形成,static readonly 表达式的值直到程序运行时才形成。

posted @ 2022-04-05 20:41  小堂子  阅读(40)  评论(0)    收藏  举报