C#中属性和字段的区别

摘要:
属性和字段之间的区别在C#中,我们可以非常自由和无限制地访问公共字段。但在某些情况下,我们可能希望限制只能分配给特定范围内的字段的值,或者要求字段只能被读取或写入,或者在更改字段时更改对象的某些其他状态。这些不能单独由字段完成,所以我们有属性。属性包括两个块:set和get,set块负责属性写入,get块负责属性读取。

属性和字段的区别

    在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)属性没有存储数据的功能,数据都存在字段中,所以只有修改字段的数据才能更改数据,修改属性的值没用。

免责声明:文章转载自《C#中属性和字段的区别》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Oracle Sql中的集函数asp.net中各类型文件阐述下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

软件架构设计之Utility模块——Any

YKAny类用于保存任意类型的变量类似于variant_t。这里采用的是boost库中的Any实现原理,增加了两个Any之间比较的功能。看代码吧: class UTIL_API YKAny { class PlaceHolder { public: PlaceHolder() {} virtual ~PlaceHolder() {} v...

进程间通信(三)

管道调用 我们已经了解了高层的popen函数,现在我们继续来了解低层的pipe函数。这个函数提供了一个在两个函数之间传递数据的方法,而不必调用shell来解释所请求的命令的。同时他也为我们提供了更多的数据读写控制。pipe函数的原型如下:#include <unistd.h>int pipe(int file_descriptor[2]);pip...

第二部分 Linux Shell高级编程技巧——第一章 深入讨论

致歉 由于视频出了点问题,所以暂时只有这点内容,后期再补上。 笔记 #记录和域 #深入讨论awk #编辑 #vi awkif.sh #改变权限 [root@localhost 0418]# chmod 755 awkif.sh #分页查看文件 more www.log #查看awkif.sh文件 [root@localhost 0418]# cat...

阿里巴巴C++实习生相关招聘一则

需要(即将毕业的)你满足以下条件:1. 计算机基础知识扎实;详细点的话就是数据库、操作系统、编译原理、计算机网络等;2. 熟悉C/C++编程语言,了解并发,有网络编程经验;3. 扎实的数据结构和算法基础;如果你满足以下条件更好:1. 有C++工程师岗位的工作经验;2. 有语音、多媒体方面的研究和沉淀;3. 有你自己的技术博客或者GitHub等;4. 有开...

JSF 2 简介,第 3 部分: 事件处理、JavaScript 和 Ajax

JSF 2 简介,第 3 部分: 事件处理、JavaScript 和 Ajax 使用更多新 JSF 2 特性增强复合组件 级别: 中级 David Geary , 总裁, Clarity Training, Inc. 2009 年 8 月 03 日 Java™Server Faces (JSF) 2 专家...

mysql数据库的简单语句的介绍(1)

数据库方面的: (1)、数据库的创建 create database 要创建数据库的名称; (2)、显示数据库中所有的数据库 show databases; (3)、删除数据库 drop database 要删除数据库的名称; (4)、使用数据库 use 要使用数据库的名称; (5)、还有要申明一点的是:数据库的名称是不能被修改的...

最新文章