永发信息网

C#里面为什么有时候要用get set设置属性?

答案:5  悬赏:70  手机版
解决时间 2021-05-09 22:32
  • 提问者网友:星軌
  • 2021-05-08 23:31
平时自己写程序从来没用过这东西也可以实现功能,但是看许多程序都有这些,就是搞不明白为什么要这样做,比如炒作数据库的。帮忙解释一下,给个例子。
最佳答案
  • 五星知识达人网友:神鬼未生
  • 2021-05-09 01:07

你所说的情况应该是定义一个属性,使之为private私有,然后一个public方法可以获取或设置该属性值吧


这就是体现代码的封装性,因为如果你直接把属性定义为公开的话,那么任意地方创建该实例,就都可以使用该属性,就难以确保安全性等。。


而如果写成一个方法来调用的话。那么你就可以设置相应的访问权限,是子类访问,还是包内访问,抑或是单例等之类的。。。操作更灵活

全部回答
  • 1楼网友:撞了怀
  • 2021-05-09 05:49

这是C# oop封装属性

public string name{get;}//只有get 就是只读属性

public string name{set;}//只有set 就是只写属性

public string name{get;set;}//get;set;读写属性

  • 2楼网友:woshuo
  • 2021-05-09 04:37

C#中使用属性,可以对字段进行封装。比如:(不使用时)

class Employee

{

public int age;

//private int age;

//public int Age

//{

//set{ age=value<0?0:value;}//在这里可以进行安全检查,好处是很明显的,当然可能还不只这些。

//get{return value;}

//}

}

class client

{

static void Main(string[] args)

{

Employee emp=new Employee();

emp.age=-1;//这是不对的,年龄怎么可以为负呢,你可能会想使用一个方法来对age赋值,同时

//把age改为private,如果这样的话为什么不使用属性呢。

}

}

  • 3楼网友:归鹤鸣
  • 2021-05-09 03:30
要确保安全
  • 4楼网友:逃夭
  • 2021-05-09 02:15

这是一种设计原则,称之为面向对象的封装性。从现在的开发角度说,是不建议直接将成员(指的是变量)直接用公开的方法供其它类访问的,因为这可能会导致有其它不可预见的时候意外修改了变量,或导致其它类似的问题。

当使用get、set将变量封装为属性以后,可以控制它们的可见性(能否被读取、能否被修改、能被谁操作等),修改的时候可以对将要修改的值进行验证是否合法,防止被其它类意外修改。这些都是面向对象设计的方法。

想知道详细的资料,可以搜索面向对象的相关特性:继承、封装和多态。

建议

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯