C#学习记录(22)类的成员定义

    一.成员定义

    1.定义字段

    public int MyInt;    //定义字段

    public readonly int MyInt = 17;    ///定义只读变量

    public static int MyInt;       ///定义静态变量

    public const int MyInt = 7;    ////定义常量


    2.建立方法

    public static string GetString()  ////定义一个静态方法
    {
        return "Here is a string.";

    }

    除了static,还有以下几种修饰方法的关键词:

     virtual——方法可以重写。

     override——方法编写了一个基类方法(如果方法被重写,就必须使用该关键字)。

     abstract——方法必须在非抽象的派生类中重写(只用于抽象类中)。

     extern——方法定义放在其他地方。

    

    3.定义属性

    public int MyIntProp
    {
        get    ////写访问器

        {

                return 变量名;

        }
        set        ///读访问器
        {
                变量名 = value;
        }
    }

   可以只写其中一个,即只读或者只写。

    可以在读访问器中,添加一些功能代码。

    if (value >= 0 && value <= 10)
        myInt = value;
    else    ///抛出异常
        throw (new ArgumentOutOfRangeException("MyIntProp", value,

                "MyIntProp must be assigned a value between 0 and 10."));     

    同时,访问器也可以添加访问属性,比如protected属性可以让在成员所在类的派生类中继续使用该属性。

    protected set

    {}

    

    二.隐藏基类的方法

    在派生类的同一函数中,添加关键词new 

    比如:    new public void DoSomething()

    如何调用重写或者隐藏基类的方法呢?

    使用关键字base调用:base.DoSomething();

    this关键字

    this 关键字最常用的功能是把当前对象实例的引用传递给一个方法,另一个常见用法是限定本地类型的成员。

    get

    {    return this.somedata;    }

    嵌套的类型定义:

    除了在名称空间中定义类型之外,还可以在其他类中定义这些类。

    public class MyClass
    {
            public class MyNestedClass
            {
                    public int NestedClassField;
            }

    }

    

    三.接口的实现

    (1)接口成员的定义与类成员的定义相似,但有几个重要的区别:

     不允许使用访问修饰符(public、private、protected 或internal),所有的接口成员都是公共的。
     接口成员不能包含代码体。
     接口不能定义字段成员。
     接口成员不能用关键字static、virtual、abstract 或sealed 来定义。

     类型定义成员是禁止的。

    interface IMyBaseInterface    //定义方法
    {
        void DoSomething();

    }

    interface IMyInterface    ///定义属性
    {
        int MyInt { get; set; }

    }

    (2)在类中实现接口

     public class MyClass : IMyInterface
    {
        public void DoSomething()
        {
        }
        public void DoSomethingElse()
        {
        }

    }

    

    四.部分类的定义

    经常看到public partial class MyClass{},这就是使用部分类定义,把类的定义放在多个文件中。例如,可以把字段、属

性和构造函数放在一个文件中,而把方法放在另一个文件中。

    部分类对Windows 应用程序隐藏与窗体布局相关的代码有很大的作用。

    

    五.部分方法定义

    部分方法在部分类中定义,但没有方法体,在另一个部分类中包含实现代码。

    partial void MyPartialMethod();    同部分类一样,是将所有部分组合起来实现一个功能的。





    

猜你喜欢

转载自blog.csdn.net/shenseyoulan/article/details/80857669
今日推荐