程序里面经常有Get和Set方法,对于有些是既有Get也有Set的,那么可以很明显使用Property会更好一些但是对于一些只有Get活着只有Set的方法,是用方法好还是用Property好呢?另外,对于类似以下类型 var GetXXX (var i){}这种带参数的方法,是用方法好呢,还是用Indexer好呢?
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
当值只能被当前实例使用时,不允许外部获取时用SET
同时允许设置和修改时用GET+SETVAR 函数只能在方法内部使用,作用域有限使用属性还是方法要看你处理什么样的逻辑,一般情况下不在属性里写过多的逻辑运算,并且只跟当前属性有关的算法
如可以通用的算法还是使用方法比较使用,因为属性不允许传递参数,SO...为了复用建议使用方法,完全没有复用并且只跟当前实例有关,非常私有就用属性
用Get和Set方法不就等于在用Property吗?
显然Property是用来管理field的,而method用来功能处理的,虽然可以返回值,但返回的不一定是输入的类型,不过Property对类型要求很严的,必须一致。
一般建议用属性,读写控制方便,在外面调用也方便Var 方法用的比较少,给人觉得不好。
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