C# 字段

为了保存类的实例的各种数据信息,C#提供了两种方法----属性和字段。其中,属性实现了良好的数据封装和数据隐藏。

字段:表示与对象或类相关联的变量,它使类和结构可以封装数据。

字段的定义需要满足类的需求,并选用合适的数据类型;

字段在声明时可以不初始化,但在使用时必须初始化。声明语句和初始化语句可以放在不同的放上;

字段的修饰符可以是new、public、internal、private、static或readonly访问类型。

字段的访问修饰符

public:表明字段可以再定义它的类的内部和外部只有访问;

internal:表明字段只能被在同一个程序集中定义的类型访问;

protected:表明字段在定义它的类型中可以访问,在定义它的类型的派生类型中也可以访问;

private:限制最严的访问类型,只能在定义它的类中访问;

protected internal:表明域可以被同一个程序集中定义的类型访问,或者被派生类型访问。

静态字段和非静态字段

静态字段的声明使用了static修饰符,其他的字段都是非静态字段。静态字段和非静态字段分别属于C#中的静态变量和非静态变量。若将一个字段声明为静态的,无论建立多少个该类的实例,内存中只存在一个静态数据的复制。当这个类的第一个实例建立,字段被初始化后在进行类的实例化时,不在进行初始化,所有属于这个类的实例共享一个副本,与之相反,在类的每次实例化时,非静态域每个实例都拥有一份单独的复制。

只读字段

如果字段的声明加上了readonly修饰符,表明该字段为只读字段。对于只读字段,我们只能在字段的定义中和它所属类的构造函数中进行修改,在其他情况下,字段是只读的。

const型表达式的值在编译时形成,而static readonly表达式的值直到程序运行时才形成。这种技术有利于进行版本控制。

字段的初始化:对于静态变量、非静态的对象变量和数组元素,这些变量自动初始化为本身的默认值。对于所有引用类型的变量默认值为null。

部分类型的字段初始化的值:

byte、short、ushort、int、uint、long、ulong    0

char                                                                              \x0000

float                                                                              0.0f

double                                                                         0.0d

decimal                                                                      0.0m

bool                                                                             false

enum                                                                          0

字段的默认初始方式:

对于静态字段,类在装载时对其进行初始化;对于非静态字段,在类的实例创建时进行初始化。







  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值