知识大全 C#类型成员样式

Posted

篇首语:古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 C#类型成员样式相关的知识,希望对你有一定的参考价值。

C#类型成员样式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  静态成员

        使用关键字 static 修饰的类型成员就是静态的 类型的字段 属性 方法 事件 构造函数都可以是静态的 例如在上面的PeopleClass中使用了以下代码定义了一个静态方法

  

    publicstaticint CalculateAge( DateTime birthday )        returnDateTime Now Subtract(birthday) Days /  ;   
        这个静态方法就是能根据生日计算周岁数的 由于计算周岁是一个通用的算法 并不局限于某个特定的对象 因此可以将其定义为静态类 静态成员类型无需创建对象实例即可通过 类型名称 成员名 的方式调用 比如以下代码就能调用CalculateAge方法

  

    DateTime dtm = newDateTime(     );  int age = PeopleClass CalculateAge(dtm);  
        对于静态类型 通过 实例变量 成员名 的方式反而不能调用 比如以下的代码是错误的

  

    PeopleClass instance = newPeopleClass();  DateTime dtm = newDateTime(     );  int age = instance CalculateAge(dtm);  
        注意调用静态成员C#和VB NET语法有些差别 在VB NET中 可以使用 派生的类型名称 成员名 来调用静态成员 但C#不支持 比如在类型A中定义了静态成员M 而从类型A之上派生了类型B 则在VB NET中可以使用 A M 或者 B M 来调用静态成员 但在C#中不能用 B M 这种写法 例如以下代码中定义了静态方法 Sum 和静态字段 Value

  

    publicclassMyClass        public static int Value =   ;      publicstaticint Sum(int a  int b)                return a + b;         
        这样我们就可以使用 MyClass Sum 来调用这个方法而无需创建对象实例 若还从这个类型派生了新类型 其代码如下

  

    publicclassOtherClass : MyClass      
        则在C#中只能使用 MyClass Sum 来调用这个静态方法 而在VB NET中可以有 MyClass Sum 和 OtherClass Sum 两种方式来调用这个静态方法   静态字段         对于静态字段 是可以赋值的 而且静态字段作用范围是整个程序 相当于全局变量 比如在任意地方修改了此处的静态变量 Value 的值后 其他地方获得的字段值就是修改后的值   静态构造函数         被 static 修饰的无参数构造函数就是类型的静态构造函数 例如对于上面的PeopleClass类型中就使用了以下代码定义了一个静态构造函数

  

    static PeopleClass()        System Console WriteLine( Start );    
        在程序加载的时候 若程序没有调用PeopleClass中的成员 静态构造函数不会被调用 甚至使用typeof操作也不会调用 但程序中第一次引用了类型的某个成员或者创建了对象实例前 系统会自动的调用一次类型的静态构造函数 而且整个软件运行期间 某个类型的静态构造函数只可能调用一次 不会被重复调用的 静态构造函数适用于延时进行系统初始化的操作 这能加快系统的启动速度           注意 静态构造函数必须是没有参数的 而且肯定是私有的 不能设置可访问级别   实例成员         没有被 static 关键字修饰的类型成员就是实例成员 比如PeopleClass类型中定义了一个ToString方法 其代码如下

  

    publicoverridestring ToString()        return _Code +     + _Name;    
        此时不能用 PeopleClass ToString 来调用这个方法 必须首先创建对象实例 然后调用这个对象实例的方法 其演示代码如下

  

    PeopleClass instance = newPeopleClass( );  instance ToString( ) ;  
虚拟成员         被关键字 virtual 修饰的成员类型是虚拟成员 比如以下代码就包含了一个名为 Sum 的虚拟函数

  

    publicclassMyClass        public virtual int Sum(int a  int b)                return a + b;          
        其实虚拟成员并不虚拟 它可以包含实质性的功能代码 能完成一定的功能 只不过虚拟成员可以方便的被重载而已 继承者也可以根据需要不重载这些虚拟方法   抽象成员 被关键字 abstract 修饰的类型成员就是抽象成员 抽象成员只能是属性 方法和索引器 以下代码就定义了一个抽象方法

  

    publicabstractint Sum(int a  int b) ;  
        在这段代码中 public 说明方法是公开的 abstract 说明这是一个抽象的成员 int 为方法的返回值类型 Sum 为方法的名称 int a int b 为方法的参数列表          定义抽象类型和定义接口的方法类似 只需要写出成员的声明即可 但还需要写出抽象成员的可访问性         抽象成员必须出现在抽象类中 而且在从抽象类派生新类型时 所有的抽象方法必须重写以填充方法体 [袁永福版权所有]   抽象成员和虚拟成员是有区别的 抽象成员不能定义任何实质的功能 必须被重载 而虚拟成员必须包含完整的代码结构 可以包含实质功能 可以不被重载 常数成员 被关键字 const 修饰的成员字段为常数字段 可以使用 类型名称 字段名 来引用常数 比如以下代码就包含了一个常数

  

    publicclassMyClass        publicconstdouble PI =  ;    
        对此我们可以使用 MyClass PI 来获得这个常数值 常数值是不能修改的 比如对于赋值代码 MyClass PI = ; 就是错误的 相对于的 静态字段是可以被修改的 比如此处使用代码 publicstaticdouble PI = ; 来定义这个字段 则就可以对这个字段赋值了 cha138/Article/program/net/201311/11840

相关参考

知识大全 C#加载Flash的AxShockwaveFlash的成员函数

C#加载Flash的AxShockwaveFlash的成员函数  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来

知识大全 谈谈C#的私有成员的一个有趣的现象

谈谈C#的私有成员的一个有趣的现象  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  大家都知道一个

厨房的样式与设计模式有哪些类型?

厨房的样式与设计模式有哪些类型?厨房的平面布局一般有“一”字式.“二”字式,L式,U式等类型。“一”字式这种靠墙的条式建筑模式,它把储存、洗涤和烹调的三个工作区,配置在一面培内。一般都是狭长的建筑空间

经济一体化可以分为各种类型,其中的一种类型是__,在这种类型下,各成员国只是相互免征关税,以保证商品在各成员国之间

经济一体化可以分为各种类型,其中的一种类型是_____,在这种类型下,各成员国只是相互免征关税,以保证商品在各成员国之间的自由流动。A、经济联盟B、共同市场C、自由贸易区D、关税同盟答案:C解析:根据

知识大全 C#类型

展现C#世界之四:C#类型  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  第四章C#类型  既然

知识大全 .NET中的特殊类型成员

.NET中的特殊类型成员  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本文我们将考察类型能定义

知识大全 .NET中的特殊类型成员[2]

.NET中的特殊类型成员[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  属性  许多类型定

知识大全 .NET中的特殊类型成员[1]

.NET中的特殊类型成员[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本文我们将考察类型

知识大全 C#中的匿名类型与隐式类型变量

C#中的匿名类型与隐式类型变量  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在C#中引入了Li

知识大全 不同类型的成员函数

   在上例的成员函数声明中你需要注意两点getArea()定义为private型drawRect()定义为public型public型意味着任何类都可以调用它private型它只能被所声明的类内部调