publick 成员 和用public 属性访问私有成员有什么区别

public string Name ;

和 private string name_;

public string Name {set;get;}

有啥区别

1.public的成员变量读写不可控,安全性不高,容易被串改;
2.private+set+get和public表现形式一致,但是没有暴露成员变量的地址
而且读写可空,如果想要变量只读,那么就不设置set,如果要变量只写,那么不设置get。
达到读写随心。

希望能够帮到你...

private string name_;

    public string name
    {
        get { return name_; }
        set { name_ = value; }
    }


            读写暂且不说,对象的成员不就是用来赋值和读值的嘛, 安全性是啥意思  , 这个类不是静态的, new出来的对象 ,用封装不是一样读值和赋值嘛

之所以用get和set主要是可以在赋值和取值的时候做一些验证

用public就不符合面向对象的封装特性,外部操作可以随意修改name的值
如果用private修饰name属性,外部类是不能直接访问name的,必须通过提供的get、set方法访问,set方法可以起到验证的作用。
举个例子:
现在有个年龄属性(age),age肯定不能小于1,理论上不能大于100。
如果用public修饰,外部操作可以随意的修改age的值,修改成1000都可以,显然不正确。
现在用private修饰,外部操作不能直接访问age属性,必须同set方法修改age的值,我们可以在set方法中加上判断,如果传入的值在1到100之间,允许赋值,反之不给修改age属性
这样就对age属性起到了保护作用,也体现出封装的优点