[关闭]
@xiaoyixy 2015-08-08T23:51:07.000000Z 字数 1649 阅读 2066

C#类成员定义

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访问器,不能用这种方式定义只读或只写属性
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注