【问题标题】:When the property get and set method has been called?何时调用了属性 get 和 set 方法?
【发布时间】:2010-03-26 10:17:39
【问题描述】:

我有以下属性声明

 Public Property IsAreaSelected() As Integer
        Get
            Return If(ViewState("IsAreaSelected") Is Nothing, 0, Cint(ViewState("IsAreaSelected")))
        End Get
        Set(ByVal value As Integer)
            ViewState("IsAreaSelected") = value
        End Set
    End Property

我想知道什么时候会调用这个 set 和 get 方法?

我执行时会被调用吗

IsAreaSelected() =0 

或者有什么类似的

IsAreaSelected().get()

IsAreaSelected().set()

??

【问题讨论】:

  • 你能把它格式化成代码吗?每行代码至少缩进四个空格。

标签: .net vb.net properties


【解决方案1】:

你调用(使用)它就像你类中的一个字段:

IsAreaSelected = 0 

If AreaSelected > 0 Then ...

【讨论】:

  • 字段名称是 IsAreaSelected() 而不是 IsAreaSelected
  • 尝试像我写的那样使用它。我的示例代码同时执行 Set 和 Get。否则,请更好地说明您的问题。
【解决方案2】:

不使用括号引用属性。要引用属性 getter,请使用以下语法:

xxx = AreaSelected

要访问属性设置器,请使用以下语法:

AreaSelected = xxx

【讨论】:

  • 在这种情况下,括号是否也将被视为属性名?
  • 没有。括号仅用于方法,这就是您可以区分它们的方法。不幸的是,VB.Net 支持编写不带括号的无参数方法,但包含括号被认为是一种好习惯。另一方面,也支持带参数的属性,在这种情况下,您还需要使用括号。但是你应该避免使用参数化的属性,而是使用方法。
猜你喜欢
  • 2012-04-05
  • 1970-01-01
  • 1970-01-01
  • 2013-10-24
  • 2017-10-28
  • 2021-05-27
  • 2013-05-20
  • 1970-01-01
  • 2017-01-15
相关资源
最近更新 更多