日期:2014-05-17  浏览次数:20391 次

属性?访问器?变量?来看下这两种有什么区别?
public class Test
{
    public Test()
    {
    }

    public string AAA;

    public string BBB
    { get; set; }
}


 Testb = new Test();
        b.AAA = "11111";
        b.BBB = "22222";




AAA和BBB有什么区别啊?
它们都算是“属性"吗?

------解决方案--------------------
前者是变量,后者是属性,照你这样写,没什么区别,直接用变量还好。
------解决方案--------------------
变量也是属性的一种,可读可写
属性可以设置为只读或只写,也可以是可读可写
------解决方案--------------------

public class Test
{
    public Test()
    {
    }
 
    public string AAA;
 
    private string BBB;

    public SetBBB(string bbb)
    {
        this.BBB=bbb;
    }

    public GetBBB()
    {
        return this.BBB;
    }
    
}

Testb = new Test();
        b.AAA = "11111";
        b.SetBBB("2222");


这样写不知道LZ能否理解一些
属性其实就是一个写方法和读方法的封装

还有一般类中变量都是不公开的 用private 或者protected去修饰
属性是公开的
------解决方案--------------------
字段是真正存储状态的地方,属性其实是一对方法
------解决方案--------------------
AAA是字段,通常是不会被暴露在外的,即不会设成public。
要想访问或设置字段,要通过public的方法,而在C#中提供了属性这种方式,其实就是一对提供访问/设置的方法。
BBB是属性。