c#中的属性

tobypy 2010-10-04 05:08:08
为什么属性要声明一个私有的然后再弄get、set方法
class Person {
private string firstname;
public string FirstName {
get {return firstname;}
set {firstname = value;}
}
}
为什么不能直接声明公共的呢?求解释
...全文
94 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
tangjubin 2010-10-04
  • 打赏
  • 举报
回复
这个就叫做类的封装了,哈哈!
tobypy 2010-10-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wybxs2006 的回复:]

引用 1 楼 wuyq11 的回复:
C#3.0 及以上的自动属性
public string FirstName {
get;set;
}

同时楼主你所说的private关键字是为了安全考虑,该变量仅该类能访问,下面的public声明属性访问器,是一种规范的编码
[/Quote]


如果不用这个private的可以不可以?就直接public的
xsff1024 2010-10-04
  • 打赏
  • 举报
回复
楼主提出这样的问题,说明还是没有理解面向对象编程的精髓,建议您多看一下这方面的书。
阿彪兄 2010-10-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyq11 的回复:]
C#3.0 及以上的自动属性
public string FirstName {
get;set;
}
[/Quote]
同时楼主你所说的private关键字是为了安全考虑,该变量仅该类能访问,下面的public声明属性访问器,是一种规范的编码
Csdbfans 2010-10-04
  • 打赏
  • 举报
回复
我觉得如果你不在乎数据的重要性的话,你用直接声明公共的使用完全OK
但是一旦你需要对数据访问进行限制的话,那么属性的作用就大派用场了
比方说,私有变量只可以读,那么你在属性里只给一个get方法,而没有写方法(Set方法),当然,把过来也一样,就是只给一个写的方法(Set方法),而没有一个读的方法(get方法),你就能对私有变量进行访问限制。
而且用属性还有一个好处,就是可以验证数据的安全性。就是在给私有变量进行操作前,你可以在get跟set方法里面对数据进行验证的逻辑判断。
种草德鲁伊 2010-10-04
  • 打赏
  • 举报
回复
有时候想不让属性的值被外部的代码修改,把set方法设成私有就可以,或者有时候属性值本身是不存在的,是被计算出来的,如果用public的字段就没办法做到。

public decimal TotalPrice {
get{ return _list.Sum(p => p.SubTotal); }
}
zhaojinghao 2010-10-04
  • 打赏
  • 举报
回复
为了保护私有字段
shaobin54504 2010-10-04
  • 打赏
  • 举报
回复
学习中...
冰冰一角 2010-10-04
  • 打赏
  • 举报
回复
属性
public string FirstName {
get;set;
}


wuyq11 2010-10-04
  • 打赏
  • 举报
回复
C#3.0 及以上的自动属性
public string FirstName {
get;set;
}

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧