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>") {} }
接口
接口仅表示其成员的存在性,类负责确定这些成员是虚拟还是抽象的(但只有在类本身是抽象的,这些函数才能是抽象的)。
接口引用完全可以看做是类引用——但接口引用的强大之处在于,它可以引用任何实现该接口的类。
可派生接口,实现该接口的类必须实现派生接口及其接口的方法和属性。
本是菜鸟,偶做老鸟,略读半卷书,坐井说天阔。大志无所为,海斗量得失,年到老时方恨晚,怒指生不逢时。