不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
区分C#的字段和属性
编辑:dnawo 日期:2008-09-15
复制内容到剪贴板
程序代码

public class TestClass
{
private string _AA;
public string BB
{
get { }
set { }
}
}
{
private string _AA;
public string BB
{
get { }
set { }
}
}
在上边例子中我们都知道_AA是字段,BB是属性,再看下边的例子:
复制内容到剪贴板
程序代码

public class TestClass
{
public string _AA;
private string BB
{
get { }
set { }
}
}
{
public string _AA;
private string BB
{
get { }
set { }
}
}
_AA是字段还是属性?BB是字段还是属性?突然发现长久以来潜意识的竟用private和public来区分字段还是属性了,潜意识认为private的是字段,public的是属性!实际上,字段还是属性的区别应是看有无访问器,无访问器的为字段,有访问器的则为属性,所以,第二个例子中_AA仍是字段,BB仍是属性。我们再来看一个例子:
复制内容到剪贴板
程序代码

public class TestClass
{
public string AA;
public string BB
{
get { }
set { }
}
}
{
public string AA;
public string BB
{
get { }
set { }
}
}
对外界而言,访问上边字段和属性其实中一样的,那字段和属性有什么区别呢?个人认为主要区别有以下几点:
·可在get和set块对属性的取值范围等做限制,而字段的范围只取决于其类型,无法精确控制;
·可通过设置get和set块的有无,设置属性的读写权限;
正因为上边几点,所以我们常常在声明一个public属性的同时声明一个private字段,在字段中保存属性的值以便在读取属性值时使用:
复制内容到剪贴板
程序代码

public class TestClass
{
public string _AA;
public string BB
{
get
{
if (_AA.Substring(0, 1) == "@")
{
return _AA;
}
else
{
return string.Empty;
}
}
set { _AA = value; }
}
}
{
public string _AA;
public string BB
{
get
{
if (_AA.Substring(0, 1) == "@")
{
return _AA;
}
else
{
return string.Empty;
}
}
set { _AA = value; }
}
}
注:在类内部使用字段和属性没有一点区别,不受访问权限的限制!
评论: 0 | 引用: 0 | 查看次数: 3759
发表评论
请登录后再发表评论!