类成员声明语句由下列部分组成:核心声明、一组可选的修饰符和一组可选的特性(attribute)。
[特性] [修饰符] 核心声明
如果有修饰符,必须放在核心声明之前。
如果有多个修饰符,要有序放置
如果有特性,必须放在修饰符和核心声明之前
如果有多个特性,可以任何顺序
修饰符:public,private,static,const
public int Mem1;
static int Mem2;被所有的实例可见,并且如果一个实例改变该值,其它实例使用的该值也会变化。
静态成员可以不用实例化,直接使用。
Static public void PrintValA();
Const int IntVal = 100;// 定义int类型常量,值为100
属性是代表类的实例或类中的一个数据项的成员。
privateint theRealValue;
publicint TheRealValue
{
get { return theRealValue; }
set { theRealValue = value; }
}
但是使用属性的话,不能直接用get和set,而是直接使用赋值的方式。
如果需要外部调用,需要声明为public
和类名相同,但是没有返回类型。
每个类只能有一个析构函数
析构函数不能带参数
析构函数不能带访问修饰符
析构函数和类有相同的名称,但以一个"~"字符作前缀
析构函数只对类的实例起作用,因为没有静态析构函数。
不能在代码中显式地调用析构函数。
classFuncTest:IDisposable
{
bool disposed = false;
publicvoid Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
~FuncTest()
{
Dispose(false);
}
protectedvirtualvoid Dispose(bool disposing)
{
if (disposed == false)
{
if (disposing == true)
{
// Dispose the managed resources
}
// Dispose the unmanaged resources
}
disposed = true;
}
}
和const不同,即可以直接初始化,也可以在构造函数中设置它的值。
但是,如果是static字段,初始化必需在static构造函数中完成。
this关键字在类中使用,是对当前实例的引用。
和属性一样,索引不分配内存为存储
索引和属性都主要被用来访问其它数据成员这些成员和它们关联,它们为这些成员提供设置和获取访问。
和属性一样,索引可以只有一个访问器,也可以两个都有。
索引总是实例成员,因此,索引不能声明为static。
和属性一样,实现get和set访问器的代码不必一定要关联到某个字段或属性。这段代码可以做任何事情或什么也不做,只要get访问器返回某个指定类型的值即可。
classEmployee
{
publicstring LastName;
publicstring Firstname;
publicstring CityOfBirth;
publicstringthis[int index]
{
set
{
switch (index)
{
case 0: LastName = value;
break;
case 1: Firstname = value;
break;
case 2: CityOfBirth = value;
break;
default:
thrownewArgumentOutOfRangeException("index");
}
}
get
{
switch (index)
{
case 0: return LastName;
case 1: return Firstname;
case 2: return CityOfBirth;
default:
thrownewArgumentOutOfRangeException("index");
}
}
}
}
当一个类中,有多个string和多个int想同时定义索引时,可以将索引定义为多个参数。
用partial class的形式,声明分部类
partialclassMyClass
{
partialvoid PrintSum(int x, int y);
publicvoid Add(int x, int y)
{
PrintSum(x, y);
}
}
partialclassMyClass
{
partialvoid PrintSum(int x, int y)
{
Console.WriteLine("Sum is {0}", x + y);
}
}
var mc = newMyClass();
mc.Add(5, 6);
C#图解教程读书笔记(第6章 类进阶),布布扣,bubuko.com
原文:http://www.cnblogs.com/pengjia89/p/3634934.html