属性
属性是一种用于访问对象或类的特性的成员。
属性具有以下的特点:
a).属性可向程序中添加元数据。元数据是嵌入程序中的信息,如编译器指令或数据描述。
b).程序可以使用反射检查自己的元数据。
c).通常使用属性与COM交互。
注:属性不能作为ref参数或out参数传递。
1.属性以两种形式存在:
1).在公共语言运行库的基类库中定义的属性
[System.Serializable]
Public class MyClass{}
2).可以创建,并可以向代码中添加附加信息的自定义属性。
public class Date
{
private int day = 7;
public int Day
{
get{return day;}
set{
if((value > 0) && (value < 8))
{
day = value;
}
}
}
}
说明:get访问器与方法体相似,它必须返回属性类型的值;而set访问器类似于返回类型为void的方法,它使用成为value的隐式参数,此参数的类型是属性的类型。
2.属性的使用
对象名.属性名
new Date().Day = 1;
注:
a).如果要在其他类中调用自定义属性,必须将自定义属性的访问级别设置为public.
b).如果属性为只读属性,不能在调用时为其赋值,否则产生异常。
方法
方法是一种用于实现可以由对象或类执行的计算或操作的成员。
1.方法的声明
方法在类或结构中声明,声明时需要指定访问级别、返回值、方法名称及方法参数。
方法声明可以包含一组特性和private、public、potected、internal4个访问修饰符的任何一个有效组合,还可以包含new、static、virtual、override、sealed、abstract以及extern等修饰符。
如果以下所有条件都为真,则表明所声明的方法具有一个有效的修饰符组合。
a).该声明包含一个有效的访问修饰符组合。
b).该声明中所包含的修饰符彼此各不相同。
c).该声明最多包含下列修饰符中的一个:static、virtual和override。
d).该声明最多包含下列修饰符中的一下:new和override。
e).如果该声明包含abstract修饰符,则该声明不包含下列任何修饰符:static、virtual、sealed和extern。
f).如果该声明包含private修饰符,则该声明不包含下列任何修饰符:virtual、override或abstract。
g).如果该声明包含sealed修饰符,则该声明还包含override修饰符。
public void method()
{
}
2.方法的分类
1).静态方法
static void Main(string[] args)
{
}
注:静态方法不对特定实例进行操作,在静态方法中引用this会导致编译错误。
2).非静态方法
public void method()
{
}
3.方法的重载
方法重载是指调用同一方法名,但各方法中参数的数据类型、个数或顺序不同。
《C#从入门到精通》读后总结