Reading C#高级编程(第四版)……………………………………………………………………………………………………………………………………………………………
C#基础语法
1、类与结构的区别
所有方法必须逐个定义访问控制
结构默认是public,不能定义无参构造函数,不能继承
结构的使用可以用new,也可以不用,不用时结构中的字段都未被初始化
2、字段、属性和方法
属性定义:
private string foreName;
public string ForeName {
get
{
return foreName;
}
set
{
if (value.Length > 20) {
//throw exception
} else {
foreName=value
}
}
}
规则一:get set 必须有一个具备属性的访问级别
规则二:只读属性通过省略set来实现
3、按值和引用传递参数
除了string,引用类型对象传递得是对象引用,修改会被作用到对象上
对于值对象如果要传递变化,则需用ref,类似&,调用时必须显示指定ref,如 SomeFun(ints,ref i);
out 参数必须在函数体内初始化 SomeFun(out i);
4、方法重载
方法重载不能通过返回值、ref、out来定义
5、构造函数和静态构造函数
c#的构造函数能把成员变量初始化为null和0,可以无需定义
静态构造函数:用于确保静态的成员和属性初始化,无参数,无访问控制
static MyClass() {}
构造函数调用其他构造函数的方法:
public: Car(string model):this(model,4) {}
调用基类的方法:
public: Car(string model):base(model) {}
6、只读字段
只读使用readonly,该字段只能在构造函数中赋值
7、object类
object是所有类,结构的根
ToString
GetHashTable
Equals
ReferenceEquals
Finalize
GetType
MemberwiseClone
8、partial、static类
partial类之间可以合并为一个类,访问控制相同
static类不能被实例化