C# 属性和字段的区别

属性和字段的区别

在C#中,我们可以非常自由的、毫无限制的访问公有字段,

但在一些场合中,我们可能希望限制只能给字段赋于某个范围的值、或是要求字段只能读或只能写,

或是在改变字段时能改变对象的其他一些状态,这些单靠字段是无法做到的,于是就有了属性,

属性中包含两个块:set和get,set块负责属性的写入工作,get块负责属性的读取工作。

在两个块中都可以做一些其他操作,如在set中验证赋的值是否符合要求并决定是否进行赋值。

当缺少其中一块时属性就只能读或只能写,set和get块中属性必需有一个,因为即不能读又不能写的属性是没有意义的。

class MyClass

{

Private  string  name;

  public string Name

  {

    get {return Name;}

    set {Name=value;}

  }

}

(1)属性可以保证安全,当不在本类中使用时可以保证使用属性名可以避免用字段的名字。

(2)属性的set和get函数可以限制字段的一些功能,以达到某种目的。 

  如:

  private int a=0;

  public int A

  {

   get{return this.a;}

  set

  {

  if(value >= 0 && value <= 100)

  this.a=value;   

  else

  throw new Exception("值的范围不合法。");

  }

  }

(3)属性没有存储数据的功能,数据都存在字段中,所以只有修改字段的数据才能更改数据,修改属性的值没用。

时间: 2024-10-20 17:13:35

C# 属性和字段的区别的相关文章

属性与字段的区别

本文转载自NetLYF 首先从两者的声明上来看,公共字段只是类用public修饰符所公开的简单公共变量,而属性则是对字段的封装,它使用get和set访问器来控制如何设置或返回字段值. 由于属性的实质是方法(get或set方法),在IL中是没有属性的概念的.所以对于开发过程中常用的赋值和取值操作来说,使用公共变量肯定会比使用属性速度要快,性能上也稍高(方法和变量哪个速度不用说了吧). 公共字段虽然在速度上快,但它必须开放字段为public,这样一来对象的调用者便可以直接修改其值,值的内容是否合法,

C#中属性和字段的区别

属性和字段的区别 在C#中,我们可以非常自由的.毫无限制的访问公有字段,但在一些场合中,我们可能希望限制只能给字段赋于某个范围的值.或是要求字段只能读或只能写,或是在改变字段时能改变对象的其他一些状态,这些单靠字段是无法做到的,于是就有了属性,属性中包含两个块:set和get,set块负责属性的写入工作,get块负责属性的读取工作.在两个块中都可以做一些其他操作,如在set中验证赋的值是否符合要求并决定是否进行赋值.当缺少其中一块时属性就只能读或只能写,set和get块中属性必需有一个,因为即不

属性和字段的区别和联系

问题:C#语法中针对类中数据成员的访问引见的属性和字段概念和C++相比,C++中只要属性(觉得相当于于C#中的字段),但是在运用C#过程中,假入本人要写一个类,包含几个数据成员(即字段)但是为了让外边能够访问还需求写对应的属性出来,岂不是有点费事?使用属性的优点是什么? 在C#中,我们可以非常自由的.毫无限制的访问公有字段,但在一些场合中,我们可能希望限制只能给字段赋值于某个范围.或是要求字段只能读或只能写,或是在改变字段时能改变对象的其他一些状态,这些单靠字段是无法做到的,于是就有了属性,属性

属性和字段的区别

首先从两者的声明上来看,公共字段只是类用public修饰符所公开的简单公共变量,而属性则是对字段的封装,它使用get和set访问器来控制如何设置或返回字段值. 由于属性的实质是方法(get或set方法),在IL中是没有属性的概念的.所以对于开发过程中常用的赋值和取值操作来说,使用公共变量肯定会比使用属性速度要快,性能上也稍高(方法和变量哪个速度不用说了吧). 公共字段虽然在速度上快,但它必须开放字段为public,这样一来对象的调用者便可以直接修改其值,值的内容是否合法,运行中是否会出错,就没有

Java中属性和字段的区别 ,很多人都分不开吗.尤其是反射技术之上的mybatis,spring配置,jstl 标签

Java中的属性,通常可以理解为其属名性时根据get和set方法名得出的. 而字段,通常叫做"对象成员". 其规则是:去掉get或set后其剩余的字符串,如果第二个字母是小写的,则把第一个字母也变成小写 getAge---->age getCPU---->CPU 属性只局限于类中方法的声明,并不与类中其他成员相关,属于javabean的范畴.例如: void setA(String s){} String getA(){} 当一个类中拥有这样一对方法时,我们可以说,这个类中

【转】属性与字段的区别

首先从两者的声明上来看,公共字段只是类用public修饰符所公开的简单公共变量,而属性则是对字段的封装,它使用get和set访问器来控制如何设置或返回字段值. 由于属性的实质是方法(get或set方法),在IL中是没有属性的概念的.所以对于开发过程中常用的赋值和取值操作来说,使用公共变量肯定会比使用属性速度要快,性能上也稍高. 公共字段虽然在速度上快,但它必须开放字段为public,这样一来对象的调用者便可以直接修改其值,值的内容是否合法,运行中是否会出错,就没有了保障,进而会大大降低类的可重用

C#属性与字段

一.字段: 字段是储存类要满足其设计所需要的数据,是与类相关的变量. 二.属性: 1.在C#中可以自由的.毫无限制的访问公有字段,但在一些场合中,我们需要只能给字段赋于某个范围的值.或是要求字段只能读或只能写,或是在改变字段时能改变对象的其他一些状态,这些单靠字段是无法做到的,于是就有了属性. 2.属性有两个方法:get和set. get访问器返回与声明的属性相同的数据类型,表示的意思是调用时可以得到内部字段的值或引用: set访问器没有显示设置参数,但它有一个隐式参数,用关键字value表示,

C#中的属性和字段

属性和字段的区别 在C#中,我们可以自由的访问公有字段,但在一些场合中,我们可能希望限制字段的赋值范围.或是要求字段只能读或只能写,或是在改变字段时能改变对象的其他一些字段值,这些单靠字段是无法做到的,于是就有了属性,属性中包含两个块:set和get,set块负责属性的写入工作,get块负责属性的读取工作. get和set 有两个类person: public class person { public string name; } public class person { public st

C#网络应用编程 类,构造函数,方法,属性和字段

1.类定义形式: public(private) class(类) apple(类名)备 注: public 不限制访问 private 访问限于本类 2.构造函数 定义形式:是一种特殊的方法.public 类名 (参数表){}作 用:主要用来在创建对象时初始化对象,即为对象成员变量赋予初始值,总与new运算符一起使用在穿件对象的语句中. 2.方法定义形式:public void(所定义方法类型) send(方法名)(参数){ }备 注:方法可以是静态的或是非静态的.通过类访问静态方法,通过累的