C#属性、字段和成员变量的关系区别
2016-07-30 18:53
525 查看
我们先来写一个类Person,字段为:name、age、sex,属性:Name、Age、Sex。那么,成员变量:name、age、sex、Name、Age、Sex。字段和属性,都可以叫做是成员变量。属性和字段都是用来存储数据的,但肯定是有不同的(要不然也不会起两个名字,干脆叫一个名算了~)。
字段一般用在类的内部使用,属性一般供外部类访问。按照类的设计原则,字段都是private的,只能在类的内部使用,如果是public的,那么外部类谁都有可能访问,对字段进行破坏性的修改,这是我们不希望看到的,所以字段一定是private的。
属性想当于是给字段加了一个保护套,如果想读这个字段的值,属性里面走的一定是get{},如果想给字段赋值,属性里一定走的是set{},那么程序员可以在get{}和set{}中增加一些限制,验证要赋值的内容,或者让某个字段只能读不能赋值(对应该字段的的属性只让它有get{},不写set{})。对于外部使用者来说只能够使用它,不能控制它,如何控制操作是由类自身决定的(或者说是由
4000
程序员决定的,嘿嘿~)。
另外,字段值可以用作ref、out参数,而属性不能。
public class Person { // 字段 private string name; private int age; private string sex; // 属性 public string Name { get { return name; } set { sex = value; } } public int Age { get { return age; } set { age = value; } } public string Sex { get { return sex; } set { sex = value; } } }
字段一般用在类的内部使用,属性一般供外部类访问。按照类的设计原则,字段都是private的,只能在类的内部使用,如果是public的,那么外部类谁都有可能访问,对字段进行破坏性的修改,这是我们不希望看到的,所以字段一定是private的。
属性想当于是给字段加了一个保护套,如果想读这个字段的值,属性里面走的一定是get{},如果想给字段赋值,属性里一定走的是set{},那么程序员可以在get{}和set{}中增加一些限制,验证要赋值的内容,或者让某个字段只能读不能赋值(对应该字段的的属性只让它有get{},不写set{})。对于外部使用者来说只能够使用它,不能控制它,如何控制操作是由类自身决定的(或者说是由
4000
程序员决定的,嘿嘿~)。
另外,字段值可以用作ref、out参数,而属性不能。
相关文章推荐
- C#属性、字段和成员变量的关系区别
- C#属性、字段和成员变量的关系区别
- C#属性、字段和成员变量的关系区别
- C#属性、字段和成员变量的关系区别
- C#属性、字段和成员变量的关系区别
- C#属性、字段和成员变量的关系区别
- C#属性、字段和成员变量的关系区别
- C#属性、字段和成员变量的关系区别
- C#属性、字段和成员变量的关系区别
- C# 字段、属性、成员变量
- C#属性和成员变量的区别?
- C#自定义属性(跟成员变量的区别)
- 黑马程序员--C#中属性和字段(变量)的区别
- C#中属性和成员变量的区别说明
- C#属性和成员变量的区别?
- iOS开发中 类、对象、实例变量、成员变量、属性变量等区别和关系
- C# 字段、属性、成员变量
- C# 字段、属性、成员变量
- C#属性和成员变量的区别?
- C#属性和成员变量的区别?