@xiaoyixy
2015-08-08T23:51:07.000000Z
字数 1649
阅读 2066
C#学习
1、成员定义:包括字段、方法和属性
访问级别关键字:
- public 成员可以由任何代码访问
- private 成员只能由类中的代码访问(如果没有使用任何关键字,则默认使用private)
- internal 成员只能由定义它的项目(程序集)内部的代码访问
- protected 成员只能由类或派生类中的代码访问
protected internal成员只能由项目(程序集)中的代码访问
字段、方法和属性都可以使用关键字static来声明,表示为类的静态成员,而不是对象实例成员
2、字段定义:变量声明格式 + 修饰符
¯ public int MyInt; --> .Net Framework中的公共字段采用PascalCasing的形式命名
¯ public readonly int MyInt = 17; --> 字段可使用关键字readonly(只读),表示该字段自能在执行构造函数的过程中赋值,或由初始化赋值语句赋值
¯ public static int MyInt; --> 字段可用static关键字声明为静态,静态字段可痛过定义他们的类访问(Class.MyInt),而不是通过类的对象实例访问
¯ 可用const关键字来创建一个常量。按照定义,Const成员也是静态的,无需使用static修饰符,否则报错
3、方法定义:标准函数格式 + 可访问性 (+ static修饰符)
v public string GetString()
{
return "Here is a string!";
}
--> .Net Framework中的公共方法采用PascalCasing的形式命名
v 方法关键字
v static 方法只能通过类访问,不能通过对象实例访问
v virtual 方法可以重写
v abstract 方法必须在非抽象的派生类中重写(只用于抽象类中)
v override 方法重写了一个基类方法(若方法被重写必须使用此关键字)
v extern 方法定义放在其他地方
public override sealed void DoSomething()
{
//Derived class implementation, overrides bass implementation
}
--> 使用override时也可使用sealed指定在派生类中不能对这个方法做进一步修改,即这个方法不能由派生类重写
4、属性定义:可访问修饰符 + 类名、属性名和get块(或set块或get块和set块)
◊ 属性拥有两个与函数类似的块,一块获得属性的值,一块用于设置属性的值。这两个块也称为访问器,分别用get和set关键字定义,可用于控制对属性的访问级别。可忽略其中的一块来创建只写或只读属性(忽略get块创建只写属性,忽略set块创建只读属性)。
◊ private int MyInt;
public int MyIntProp
{
get
{
//Property get code
return myInt;
}
protected set //访问器的可访问性不能高于其所属属性的可访问性
{
//Property set code
if (value > 0 && value < 10)
MyInt = value;
else
//抛出异常
throw(new ArgumentOutOfRangeException("MyIntProp", value, "MyIntProp must be assigned a value between 0 and 10!")); }
}
--> .Net Framework中的公共属性也采用PascalCasing的形式命名
◊ get块必须有一个属性类型的返回值
◊ 外部代码必须使用属性来访问该字段。set函数通过以类似的方式把一个值赋值给字段,可使用value关键字表示用户提供的属性值。
◊ 属性可以使用virtual、override和abstract关键字,就像方法一样,但字段不可使用
◊ 只有类或派生类中的代码才能使用set访问器
◊ 自动属性
public int MyIntProp
{
get;
set;
}
自动属性的唯一限制是他们必须包含get和set访问器,不能用这种方式定义只读或只写属性