当前位置: 首页 > news >正文

东莞网站建设最牛站长工具综合查询2020

东莞网站建设最牛,站长工具综合查询2020,门户网站建设 知乎,wordpress搭建网站C#属性是域的扩展(即通常说的成员变量或字段等)它配合C#中的域(字段)使用,使之构造一个安全的应用程序,为什么说通过属性来替代域会提高应用程序的安全呢? 原因就在于C#属性通过访问器(Accessors)用进行数据访问.所以C#的属性可以设置为只读或只写. 而字段却没有这样的功能(只…

C#属性是域的扩展(即通常说的成员变量或字段等)它配合C#中的域(字段)使用,使之构造一个安全的应用程序,为什么说通过属性来替代域会提高应用程序的安全呢?

    原因就在于C#属性通过访问器(Accessors)用进行数据访问.所以C#的属性可以设置为只读或只写. 而字段却没有这样的功能(只可设置只读).我们都知道在程序中有时我们是不允许用户修改一些属性的,比如地球是圆的。原则上我们是不能修改此属性.那么我们就可以通过一个属性来实现这样的功能.让它设置为只读属性.

    属性的特点:C#属性是对类中的字段(fields)的保护,像访问字段一样来访问属性。同时也就封装了类的内部数据。每当赋值运算的时候自动调用set访问器,其他时候则调用get访问器。 以 帕斯卡命名 不能冠以Get/Set。静态属性是通过类名调用的!

    前面我们说到属性是字段的扩展,我们都知道如果要在类外部访问字段,就要公开(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.名字="Simon"//设置属性
String MyTemp=MyTt.名字;读取属性值
通过上面的例子我们可以看出属性只不过是做了一个中介的角色而已,真正工作的还是字段(域),但这样做可以更面向对象,写出更安全的应用程序。

     C#提供了一个处理此概念的更清爽的方式。在C#中,get和set方法是内在的,而在Java和C++里则需人为维护。C#的处理方式有诸多优点。它鼓励程序员按照属性的方式去思考—把这个属性标为可读写的和只读的哪个更自然?或者根本不应该为属性?如果你想改变你的属性的名称,你只要检查一处就可以了。

    C#中属性这种机制使得在保证封装性的基础上实现了访问私有成员的便捷性。一个支持属性的语言将有助于获得更好的抽象。

    来自MSDN中的内容:

属性和属性过程

    可以使用属性和字段在对象中存储信息。属性使用属性过程控制如何设置或返回值,而字段只是公共变量。属性过程是在属性定义中声明的代码块,可用于在设置或检索属性值时执行代码。

    具有两种类型的属性过程:用于检索属性值的 Get 属性过程和用于为属性分配值的 Set 属性过程。例如,存储银行帐户余额的属性可能会在 Get 属性过程中使用代码以在返回可用余额之前记入利息并检查服务费。然后,您可以使用 Set 属性过程验证余额并防止它以不正确的方式更新。简而言之,属性过程允许对象保护和验证自己的数据。

只读和只写属性
    大多数属性都具有 Get 和 Set 属性过程,这两个属性过程可用于读取和修改存储在内部的值。然而,您可以使用 ReadOnly 或 WriteOnly 修饰符来限制对属性进行修改或读取。

    只读属性不能具有 Set 属性过程。这种属性用于需要公开但不允许修改的项。例如,可以使用只读属性来提供计算机处理器的速度。
    只写属性不能具有 Get 属性过程,它们用于使用不应或不能存储在对象中的数据配置对象。例如,只写属性可用于获取密码并在不存储该密码的情况下更改对象的状态。

转载于:https://www.cnblogs.com/liuxuewen/archive/2011/12/09/2281501.html

http://www.lbrq.cn/news/2362771.html

相关文章:

  • 政府网站建设培训开班主持稿友链提交入口
  • 福州网页模板建站百度seo文章
  • flash美食网站论文百度公司好进吗
  • 旅游网站功能简介seo综合查询工具
  • 网站logo怎么做最清楚当日alexa排名查询统计
  • 网站建设专员工作总结宁波seo教程
  • 网站运维合同广告投放优化师
  • 品牌建设传播网站公司谷歌seo优化技巧
  • 扬州中兴建设有限公司网站seo如何优化排名
  • 网站建设与管理个人总结百度的网址是什么
  • 网站建设项目前分析关键词优化技巧有哪些
  • 中国建筑集团领导名单徐州网站建设方案优化
  • 网站建设安全规划免费百度下载
  • 开发网站的硬件成本游戏推广员是违法的吗
  • 北京网站设计公司兴田德润优惠吗毕业设计网站
  • wordpress根目录没有.htaccess百度推广怎么优化排名
  • 上海wordpress网站建设百度登录首页
  • 东莞网站推广流程360指数
  • 招聘信息网站怎么做谷歌浏览器官网下载手机版
  • 镇江教育云平台网站建设石家庄热搜
  • 云端网站建设成都百度关键词排名
  • 网站收录怎么删百度招商客服电话
  • 网站制作的要求一键清理加速
  • 淮安专业网站建设北京网站优化经理
  • 小公司网站建设杭州优化seo
  • 什么专业是做网站广州seo网站推广
  • 做包装用哪个网站怎么自己做网页
  • webstorm做网站专业软文发稿平台
  • 金堂县城乡建设局网站网络优化报告
  • 俄罗斯网站域名关键词优化是怎么弄的
  • 一款基于PHP开发的不良事件上报系统源码,适用于医院安全管理。系统提供10类事件类别、50余种表单,支持在线填报、匿名上报及紧急报告。
  • 智慧农业新图景:物联网如何精准守护作物生长​
  • 新手向:自动化图片格式转换工具
  • 高性能架构模式——高性能缓存架构
  • 前端网络性能优化
  • MybatisPlus由浅入深