C#高级语法基础知识总结1

Ref关键字参数,函数传值改变原始对象的值

Out关键字参数,函数传值时可不用初始化值

静态构造函数只能访问类的静态成员,而不能访问类的实例成员。

 

类定义非公有的或受保护的构造函数

此类不能用new运算符在外部代码中实例化,但可在类的内部编写一个公有静态属性或方法,以实例化该类。

作用:1.类仅用作某些静态成员或属性的容器;因此永远不会实例化它。

         2.希望类仅通过调用某个静态成员函数来实例化(这就是所谓对象实例化的类工厂方法)

 

类的静态方法中只能调用静态方法或成员;

静态只读成员只能被构造函数或初始化时使用;

 

Virtual把一个基类的函数声明为虚方法,任何派生类中重新改方法。

Override关键字重新基类中virtual,abstract,override的函数,称为重写基方法。

 

隐藏方法:使用new关键字,该方法将隐藏基类中没有声明为virtual和override的方法。

关键解决在后续的开发中,基类方法的添加与派生类方法命名与签名的冲突。

 

Abstract类(抽象类)

不能实例化,而抽象函数不能直接实现,必须在非抽象的派生类中重

写。抽象类中方法不能声明实体。

 

Sealed类和sealed方法(密封类和密封方法)

该类不能被继承,该方法不能被重写。

 

Private成员字段,派生类不能访问。

 

派生类的构造函数

        public abstract class GeneicCustomer
        {
           private string _name;
            public GenericCustomer(string name)
            {

                this._name = name;

            }

            public string Name { get { return _name; } set { _name = value; } }

        }

        public class Nevermore60Customer : GenericCustomer

        {

            public Nevermore60Customer(string name,string referrerName)

                : base(name)

            {

                this._referrName = referrerName;

            }

            private string _referrName;

            public string ReferrName { get { return _referrName; } set { _referrName = value; } }

            private uint _highCostMinutesUsed;

            public Nevermore60Customer(string name)

                :this(name,"<None>")

            {}

        }

接口

接口仅表示其成员的存在性,类负责确定这些成员是虚拟还是抽象的(但只有在类本身是抽象的,这些函数才能是抽象的)。

接口引用完全可以看做是类引用——但接口引用的强大之处在于,它可以引用任何实现该接口的类。

可派生接口,实现该接口的类必须实现派生接口及其接口的方法和属性。

posted @ 2012-07-16 21:54  Ghost Soar  阅读(918)  评论(0编辑  收藏  举报