C#属性总结

发布时间:2016-12-9 0:13:56 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"C#属性总结",主要涉及到C#属性总结方面的内容,对于C#属性总结感兴趣的同学可以参考一下。

1.私有字段和公有字段的比较 类中的私有字段只能在类的内部访问,而对类的公有字段的访问却不受限制。 在以前,为了封装,程序中会尽量少使用公有字段,因为使用公有字段的话,会让程序失去控制权。所以程序中会大量使用私有字段。不过,使用私有字段时,需要程序为私有字段定义额外的取值方法和赋值方法。 下面的示例代码定义了一个私有字段age来表示年龄,同时定义了取值方法GetAge()及赋值方法SetAge()供外部来调用,通过这两个方法,外部的对象就可以来访问私有变量age了。 private int age; public void SetAge(int age) { this.age = age; } public int GetAge() { return this.age; } 使用这种方法时,在SetAge()方法和GetAge()方法中可以增加相应的控制代码来防止外部对age的非法访问。如使用下面的代码就可以避免将一个负数赋值给age,因为一个人的年龄不可能小于0。 public void SetAge(int age) { if (age > 0) { this.age = age; } } 不过这种方法比起使用公有字段,略显麻烦。 要是使用公有字段的话,则只需使用下面的定义代码(就短短一行哦,不过安全性就不要再想了): public int Age; 这样,在类的外部就可以使用下面的代码来访问这个公有字段了: x.Age = 10;//x为模拟类实体 而在类的外部,私有字段的访问就必须通过赋值方法和取值方法来完成了。 x.SetAge(10); //x为模拟类实体 虽然访问私有字段与公有字段都是短短一行代码,但是访问私有字段却要通过一个方法,感觉还是什么了点(至于是什么,天知道),呵呵。        下面简单总结一下: 使用“私有字段+赋值方法+取值方法”的方式略显麻烦但是可以保证字段的安全性。 而使用公有字段方式简单但是却无法保证字段的安全性。 很显然,安全性肯定要比简单性对程序影响深远。这也就是以前很少使用公有字段的原因了。 难道我们就不能同时兼顾公有字段的简单性和私有字段的安全性吗。 答案是有的,属性满足我们的要求。 2.属性 在介绍属性前,先给出表示年龄的属性代码,如下:private int age; public int Age { get { return this.age; } set { if (value > 0) { this.age = value; } } } 属性的访问代码如下: x.Age = 10;//x为模拟类实体 是不是很熟悉啊,对的,和公有字段的访问方式一摸一样。 并且,在给属性赋值时,会调用属性的set方法(属性提供的set方法被称为set访问器,get方法被称为get访问器),在set方法中可以增加相应的控制代码来防止外部对私有字段age的非法访问。这与为私有字段添加的SetAge()方法的作用相同。 可见,属性就是我们需要的,同时兼顾了公有字段的简单性和私有字段的安全性。 最后,介绍一下属性的概念:属性是一个或一对方法(类似于为私有字段添加的赋值方法和取值方法),在客户机看来,他们是一个字段(类似于公有字段)。当属性定义中省略set访问器时,属性则为只读属性;当属性定义中省略get访问器,属性就为只写属性。 好了,就写到这里了。

上一篇:[poj 3468]A Simple Problem with Interger[线段树][区间更新]
下一篇:LeetCode 11: Container With Most Water

相关文章

关键词: C#属性总结

相关评论