我看了很多程序都是用属性,为何不用公共变量,曾经看过一篇文章介绍此区别,用公共变量速度反而快,用属性还是用公共变量我一直都没搞明白,希望各位高手帮我解惑,谢谢!

解决方案 »

  1.   

    面向对象
    便于封装...

    public string Name
    {
      get;
      protected|... set;
    }
    属性里面可以有自己的逻辑,比如加判断、转换值如
    private StringBuilder str = new StringBuilder();public string Str
    {
      get{return str.ToString();}
      set {str.Append(value);}
    }
      

  2.   

    之前一直用VB写程序,最近才学C#,是一直没整明白这个区别,有劳各位解答,现明白了一点,谢谢
      

  3.   

    用公共变量速度快,就是因为少了中间处理的环节.但是也因此更直接地对类的内容进行了操作和控制,比起属性的使用来说,相对的安全就变低了.属性的好处,就是对存入公共变量的值可以进行处理.如果觉得该值不合法,可以就地变换或者直接提出警告.只不过多花了点点时间,所以有一点点慢.但对于该类所生成的对象的使用安全,还是有相当多的好处的.至少运行时,因公共变量值的错误而产生的问题会大大减少.公共变量的好处,就是快.但由于这种用法必须开放变量为PUBLIC,对象的调用者就可以直接修改其值,值的内容是否合法,运行中是否会出错,就没了保障.所以,一般不建议,因为会降低类的可重用性.但偶尔会有些情况,我们根本没必要去使用什么属性,只要用最简单的方法来实现就可以的情况,我们还是可以考虑使用公用变量的.取舍,都是需要根据具体情况来判断的.想获得某方面的优势,都是通过对另一方面某种程度的牺牲换来的.但并不是绝对的谁好,谁不好.
      

  4.   

    一是对字段进行封装,这是面向对象的思想
    二是字段在c++中是通过setvalue(),getvalue()方法来操作,
    在c#中可以直接用=做赋值运算,方便