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函数可以限制字段的一些功能,以达到某种目的。
如:
C# 属性和字段的区别的更多相关文章
- Java中的属性与字段的区别
Java中属性和字段的区别 Java中的属性,通常可以理解为其属名性时根据get和set方法名得出的. 其规则是:去掉get或set后其剩余的字符串,如果第二个字母是小写的,则把第一个字母也变成小写 ...
- C#中属性和字段的区别
属性和字段的区别 在C#中,我们可以非常自由的.毫无限制的访问公有字段,但在一些场合中,我们可能希望限制只能给字段赋于某个范围的值.或是要求字段只能读或只能写,或是在改变字段时能改变对象的其他一些状态 ...
- 基础知识系列☞C#中→属性和字段的区别
"好吧...准备写个'基础知识系列',算是记录下吧,时时看看,更加加深记忆···" 其实本来准备叫"面试系列"... 字段.属性.你先知道的哪个概念? ***我 ...
- C#属性和字段区别、get与set用法
属性和字段的区别 在C#中,我们可以非常自由的.毫无限制的访问公有字段,但在一些场合中,我们可能希望限制只能给字段赋于某个范围的值.或是要求字段只能读或只能写,或是在改变字段时能改变对象的其他一些状态 ...
- 【C#】C#中的属性与字段
目录结构: contents structure [+] 属性和字段的区别 无参属性 自动实现的属性 对象和集合初始化器 匿名类型 System.Tuple类型 有参属性 属性的可访问性 在这篇文章中 ...
- C# 属性与字段
属性和字段的区别: 属性是逻辑字段,是字段的扩展,并不占用实际的内存:而字段占用内存空间. 属性可以被其他类访问:而非public的字段不能被直接访问. 属性可以对接受的数据在范围上做限定:而字段不能 ...
- 黑马程序员--C#中属性和字段(变量)的区别
---------------------- ASP.Net+Android+IOS开发..Net培训.期待与您交流! ---------------------- 属性为类提供了一种很有用的封装数据 ...
- C#属性、自动属性、字段之间的区别和理解
.ctor是构造方法的意思,注意委托其实也是有构造方法的(不过是编译器自动创建的是私有的)貌似它的参数一个是委托引用的方法所属的对象(或Type对象),一个是该方法的指针: 1.属性的概念其实和字段是 ...
- @Validated和@Valid区别:Spring validation验证框架对入参实体进行嵌套验证必须在相应属性(字段)加上@Valid而不是@Validated
Spring Validation验证框架对参数的验证机制提供了@Validated(Spring's JSR-303规范,是标准JSR-303的一个变种),javax提供了@Valid(标准JSR- ...
随机推荐
- 一个会Flash的人来说CSS3
以前在上大学的时候学过Flash,而且以前做一些网页效果都是用的Flash,现在才知道以前我所用的方法是有多麻烦.在学过CSS3之后,我发现以前要用Flash写半天的效果,现在用几句CSS3代码就搞定 ...
- Rigid motion segmentation
In computer vision, rigid motion segmentation is the process of separating regions, features, or tra ...
- http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html(转载)(原作者:AstralWind)
Python正则表达式指南 本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例.本文的内容不包括如何编写高效的正则表达式.如何优 ...
- json序列化时datetime的处理方法
.net自带的json序列化器,JavaScriptSerializer和DataContractJsonSerializer,都是序列化成微软的datetime json格式,e.g. " ...
- CentOS6.4下基于Nginx搭建mp4/flv流媒体服务器
我的步骤如下:1. 安装依赖包: yum install glibc.i686#yum –y update#yum -y install gcc glibc glibc-devel make nasm ...
- ORACLE行转列通用过程
create or replace procedure row_to_col(tabname in varchar2, group_ ...
- ubuntu 12.04 java 环境的配置
首先从官网下载JDK 链接地址: ...sudo gedit ~/.bashrc #Java Pathexport JAVA_HOME=/home/pan60157/java/jdk1.6.0_45e ...
- POJ 2229 Sumsets
Sumsets Time Limit: 2000MS Memory Limit: 200000K Total Submissions: 11892 Accepted: 4782 Descrip ...
- Office 365 SharePoint Online 学习链接
Here is an article about how to develop for SharePoint Online(Ofiice 365):http://www.microsoft.com/e ...
- 给vs2010换皮肤
http://www.cnblogs.com/aolinwxfx/articles/2379252.html O(∩_∩)O哈哈~,很不错哦