变量/字段哪个更好?

scu_cs 2009-04-24 03:41:38
我在类里面有一些变量是private的,只有类内的方法可以访问,想问一下这种变量到底有没有必要封装成字段(或者叫属性)?一般的做法是怎么样的,封装还是不封装?

还有,引用类型封装过之后访问与不封装访问有区别吗?
...全文
108 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
bagegejin 2009-04-25
  • 打赏
  • 举报
回复
暴露属性是为了外部访问的呀
scu_cs 2009-04-25
  • 打赏
  • 举报
回复
谢谢上面的各位。基本了解了。
wangpai6698 2009-04-25
  • 打赏
  • 举报
回复
我觉得其实 用变量和用属性区别不是太大,但是用属性还是更好些,因为属性可以自由的设置值和获得它的值,在写程序时可以更容易的管理,而用变量多了就显得不容易控制了。当然,用到变量的地方都完全可以由属性去取代。
guzhonghua 2009-04-25
  • 打赏
  • 举报
回复
那就没必要了
public string str;

private string _str

public string Str
{
get{}
set{}
}
是一样的
属性是为了封装,如果你不需要封装 干脆就直接提供字段
public
ligongkel 2009-04-24
  • 打赏
  • 举报
回复
学习学习
scu_cs 2009-04-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 guzhonghua 的回复:]
字段是字段 属性是属性 理解错误
private string str=“”;//这个叫私有变量
public string str="";这个可以叫公共字段
public string Str//这个才是属性
{
get{}
set{}
}
至于你说的需不需要封装 那要看你是否有必要
封装的好处是在你获得或是赋值的时候,可以更好的控制。
[/Quote]


如果我不需要控制(不做任何赋值检查),只是直接赋值呢?需不需要把字段封装成属性?
蓝海D鱼 2009-04-24
  • 打赏
  • 举报
回复
当你需要 外部 用到的 才封装, 用不到 就不用
scu_cs 2009-04-24
  • 打赏
  • 举报
回复
汗了,受人误导,一直以为字段就是属性……
guzhonghua 2009-04-24
  • 打赏
  • 举报
回复
字段是字段 属性是属性 理解错误
private string str=“”;//这个叫私有变量
public string str="";这个可以叫公共字段
public string Str//这个才是属性
{
get{}
set{}
}
至于你说的需不需要封装 那要看你是否有必要
封装的好处是在你获得或是赋值的时候,可以更好的控制。
cppfaq 2009-04-24
  • 打赏
  • 举报
回复
private的东西不封装也罢
如果要公开给外部访问则需要以property的形式来公开以达到更好的封装效果
  • 打赏
  • 举报
回复
首先,你说的那些个变量在这里应该叫做字段.所以先把字段和属性的定义搞清楚.

如果只在类内访问,可以不封装,但不符合设计的规范.一般的做法是封装成公共的属性的.可以设置只读呀能写能读,当然了也可设置只写(但这没有意义,应用方法来处理这种情况)

引用类型封装之后有没有区别,看你在get{}和set{}里面有没有做处理了.如果没有做什么使之变更的处理,那是没有什么区别的.另外,理论上访问属性比访问字段要慢一些,但对于项目来说,根本不用考虑这点性能损失.
xyllimin 2009-04-24
  • 打赏
  • 举报
回复
不晓得啊
jdbcodbc 2009-04-24
  • 打赏
  • 举报
回复
[Quote=引用楼主 scu_cs 的帖子:]
我在类里面有一些变量是private的,只有类内的方法可以访问,想问一下这种变量到底有没有必要封装成字段(或者叫属性)?一般的做法是怎么样的,封装还是不封装?

还有,引用类型封装过之后访问与不封装访问有区别吗?
[/Quote]
谁知道你要做什么啊,你需要用到封装就封装啊,用不到就不封啊

110,546

社区成员

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

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

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