亲爱的朋友: 今天是: 网站地图   |   加入收藏  |  设为首页 
零下七度07DU.com - 专业致力于网站建设和服务
首页关于我们付款方式七百易电子商务试用广告服务联系我们 
零下七度主页 网站建设 平面设计 软件开发 虚拟主机 域名注册 成功案例 文档中心 用户中心 帮助中心
    您的位置: 零下七度 >> 文档中心 >> .NET技术 >> Asp.net >> c# 什么是属性 
c# 什么是属性
2008-7-2 14:50:37  作者:  来源:http://hi.baidu.com/huai234/blog/item/b635da0727a84dc87b894711.html
首先C#属性是不存储任何的实值,它是域的扩展(即我们通常说的成员变量等)
它配合C#中的域(字段)使用,使之构造一个安全的应用程序,为什么说通过属性来替代域会提高应用程序的安全呢?
原因就在于C#属性通过访问器(Accessors)用进行数据访问.所以C#的属性可以设置为只读或只写.
而字段却没有这样的功能(只可设置只读).我们都知道在程序中有时我们是不允许用户修改一些属性的,比如地球是圆的
原则上我们是不能修改此属性.那么我们就可以通过一个属性来实现这样的功能.让它设置为只读属性.
前面我们说到属性是字段的扩展,我们都知道如果要在类外部访问字段,就要公开(Public)这个成员字段
但是如果我们真的这样做了,那这个成员字段的就可以被任意访问(包括修改,读取).那怎么办呢?
用一个属性就可以解决这个问题.
C#属性是通过Get(读取)、Set(设置)来访问属性的.
public class Test
{
    public Test()
       {
              //
// TODO: 在此处添加构造函数逻辑
//
        }
    //为了说明问题这里我们用中文
    public string 地球的形状;
}
在上面的例子里"地球的形状"这个字段就可以任意的访问,不受任何的束缚.但是我们都知道地球是圆的,是不允许修改的一个特性,那怎么办呢?用一个属性就可以轻松的解决这个问题.
public class Test
{
    public Test()
       {        
              //
// TODO: 在此处添加构造函数逻辑
//
       }
    //为了说明问题这里我们用中文
    private string 地球的形状="圆";//私有的成员变量,它对于外部是不可见的.
    public string 地球形状
        {
           get
           {
              return 地球的形状;//这里将私有成员变量地球的形状返回给"地球的形状"
           }
        }
}
这里我们只可以读取属性"地球形状",而不可以写,如果强制写编译器就会提示出错.这样我们就可以通过类来访问属性.
Test MyTt=new Test();//实例化类
string MyTemp=MyTt.地球形状;//读取类的属性
下面我们说一下写的应用.
public class Test
{
    public Test()
       {
              //
// TODO: 在此处添加构造函数逻辑
//
        }
    //为了说明问题这里我们用中文
    private string 你的名字;//私有的成员变量,它对于外部是不可见的.
    public string 名字
        {
           get
           {
              return 你的名字;//这里将私有成员变量"你的名字"的形状返回给"名字"
           }
           set
           {
               你的名字=value;//这里的value将等于"名字这个属性值"
           }
        }
}
这样我们就可以对属性读取和写了.
Test MyTt=new Test();//实例化类
MyTt.名字="沉健"//设置属性
String MyTemp=MyTt.名字;读取属性值
通过上面的例子我们可以看出属性只不过是做了一个中介的角色而已,真正工作的还是字段(域),但这样做可以更面向对象
写出更安全的应用程序.

打印】【关闭】【收藏


联系我们 - 关于我们 - 付款方式 - 汇款帐号 - 广告服务 - 网站地图 - 咨询反馈 - 招贤纳士 - 合作伙伴

地址:中国·四川·成都市锦江区仁居路2号 服务热线:028-85915526 联系我429459102 联系我13478148 联系我155040795 联系我605595956
广告商务:hermes262@163.com 客服:jarviseluo@yahoo.com.cn 投诉:xpxcc@hotmail.com
业务资质:中国万网2006核心合作伙伴;动易网络成都、西南区域代理商
零下七度 版权所有 备案编号:蜀ICP备06019771号
Copyright©2007 零下七度 07du.Com