对象和类
类和结构的区别
字段、属性和方法
按值和引用传递参数
方法重载
构造函数和静态构造函数
只读字段
Object类
1、类中的数据和函数称为类的成员
数据成员:字段、常量、事件。数据成员可以是静态数据(与整个类相关)或实例数据(类的每个实例都有它自己的数据副本)。类成员总是实例成员,除非用static进行了显示声明。
函数成员:操作类中数据的某些功能,包括:方法、属性、构造函数、终结器(finalizor)、运算符、索引器
2、在C#中,每个函数都必须与一个类或结构相关。方法可以包含任意多个return语句。
3、参数可以通过引用或值传递给方法。C#中参数通过值来传递,在传递给方法之前,任何变量都必须初始化。当加上out参数时,可以不初始化。
4、C#不支持可选参数,故使用方法重载达到此目的。重载:两个方法不能仅在返回类型上有区别;两个方法不能仅根据参数是声明为ref和out来区分。
5、属性的访问修饰符。如果有一个封装了私有字段的属性需要读取的公共访问权限,但要限制对派生类的写入访问,就应把底层的字段设置为protected,而不是private,但这通常不是好的编程方法,应声明一个公共只读属性和一个受保护的活私有的Set()函数
public string ForeName
{
get
{
return foreName;
}
}
protected void SetForeName(string value)]
{
if(value.Length>20)
//code here to tack error recovery action
//(eg.shrow an exception)
else
foreName = value;
}6、如果提供了带参数的构造函数,编译器就不会提供默认的构造函数,除非没有显示的定义任何构造函数。
7、使用this关键字区分成员字段和同名函数
8、把构造函数定义为private或protected,不相关的类就看不到了,如果没有定义任何公共或受保护的构造函数,就不能使用new运算符在外部代码中实例化(但可以编写一个公共静态方法,以进行实例化),在下面2种情况下是有用的:
1、类仅用作某些静态成员或属性的容器,因此永远不会实例化。
2、对象实例化的类代理方法:类仅通过调用某个静态成员函数来实例化。
9、无参数的实例构造函数和静态构造函数为何安全共存?后者在加载类时执行,前者创建实例时执行。
10、构造函数初始化器


浙公网安备 33010602011771号