何时该用Get和Set方法,何时该用Property

xcode21 2009-05-14 11:09:59
程序里面经常有Get和Set方法,对于有些是既有Get也有Set的,那么可以很明显使用Property会更好一些

但是对于一些只有Get活着只有Set的方法,是用方法好还是用Property好呢?

另外,对于类似以下类型 var GetXXX (var i){}这种带参数的方法,是用方法好呢,还是用Indexer好呢?
...全文
287 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xcode21 2009-05-14
  • 打赏
  • 举报
回复
“属性不应该涉及太多逻辑”

这应该算是一个理由,还有吗?
kkun_3yue3 2009-05-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xcode21 的回复:]
没说到正题上

我的意思是用函数和用属性都可以达到目的,那么到底用函数还是用属性?
[/Quote]

属性里不封装有复用的代码,有复用性提出来用方法实现
属性里只做跟自己相关的逻辑
yzy8788 2009-05-14
  • 打赏
  • 举报
回复

Public ReadOnly Property wfsjStart() As DateTime
Get
Return CDate(String.Format("{0} 00:00:00", Request.QueryString(showHphm.PARAM_WFSJSTART)))
End Get
End Property


public WriteOnly Property xxxxx()
Set
[.........]
End Set
End Property
lijunchen1007 2009-05-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xcode21 的回复:]
没说到正题上

我的意思是用函数和用属性都可以达到目的,那么到底用函数还是用属性?
[/Quote]

一般建议用属性,读写控制方便,在外面调用也方便

Var 方法用的比较少,给人觉得不好。
qldsrx 2009-05-14
  • 打赏
  • 举报
回复
不是在说Property吗,怎么又转到Indexer了?var GetXXX (var i){}可以这样写吗?
用Get和Set方法不就等于在用Property吗?
显然Property是用来管理field的,而method用来功能处理的,虽然可以返回值,但返回的不一定是输入的类型,不过Property对类型要求很严的,必须一致。
xcode21 2009-05-14
  • 打赏
  • 举报
回复
没说到正题上

我的意思是用函数和用属性都可以达到目的,那么到底用函数还是用属性?
wuyi8808 2009-05-14
  • 打赏
  • 举报
回复
可以有只读或者只写的属性。
kkun_3yue3 2009-05-14
  • 打赏
  • 举报
回复
当值只能被当前实例更改时,不允许外部修改时用GET
当值只能被当前实例使用时,不允许外部获取时用SET
同时允许设置和修改时用GET+SET

VAR 函数只能在方法内部使用,作用域有限

使用属性还是方法要看你处理什么样的逻辑,一般情况下不在属性里写过多的逻辑运算,并且只跟当前属性有关的算法
如可以通用的算法还是使用方法比较使用,因为属性不允许传递参数,SO...为了复用建议使用方法,完全没有复用并且只跟当前实例有关,非常私有就用属性

110,570

社区成员

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

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

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