C#字段、接口、抽象解释

本文详细介绍了C#中的各种修饰符,包括internal、readonly、static、abstract与virtual等,并对比了它们之间的区别。同时,文章还提供了代码示例帮助理解这些概念的实际应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

修饰字段

字段,成员变量,它表示存储位置,是C#中类不可缺少的一部分.

修饰字段C#提供5种:

internal :扩展了C++原来的friend修饰符.在有必要使两个类的某些字段相互可见时,我们将这些类的字段声明为  internal,然后将它们放在一个程序集中编译即可.如果对它们的继承子类也可见的话,声明为protected internal实际这也是程序集本来的意图,即将逻辑相关的的类组合封装在一起.

readonly只读字段:只读不能进行写操作,const关键字也不能被修改

1.const ,readonly的值一旦被初始化都不可以在改写

2.const只能在声明时初始化 ,readonly即可以在声明时初始化,也可以在构造器中初始化.

3.const隐含static,不可以再写static const;readonly不默认static,如需要可以写static readonly

4.const是编译静态解析的常量,因此起表达式必须在编译时就可以求值,readonly是运行期动态解析的常量

5.const可用来修饰类中的成员,也可以修饰函数体内的局部变量;readonly只可以用于修饰类中的成员

static 静态方法

1.静态方法是一种特殊的成员方法,它不属于类的某一个具体的实例,属于类本身。

   

2.static:静态字段属于类,为类的所有对象所共用.非静态字段属于某个具体的对象,为特定的对象专有.

            非静态成员在类的每个实例中都占有一个存储或者说是一个副本,而静态方法为类所共享的它无法判断当前             的非静态成员属于那一个实例。

             所以在静态方法不能使用非静态成员 。

 

 C#严格归定非静态字段只能通过对象来访问,静态字段只能通过类来访问。

 

c#中abstract与virtual的区别

 

1.abstract方法只能在抽象类中声明,虚方法则不是。

   abstract方法必须在派生类中重写,而virtual则不必

 

 

2.abstract方法不能声明方法实体,

      abstract public void SD();

   虚方法则可以

 

3.虚方法可以实现多态,而抽象方法不可以。。。

 

virtual标记方法为虚方法

1.可在派生类中以override覆盖此方法

2.不覆盖也可由对象调用

3.无此标记的方法(也无其他标记),重写时需用new隐藏原方法

abstract 与virtual : 方法重写时都使用 override 关键

 

 

 

 

 

 

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值