如何在设置属性值时操纵'值'

时间:2011-05-31 01:51:16

标签: vb.net class properties

我在一个类中有以下属性:

'Language
Private _Language As String = ""
Public Property Language() As String
    Get
        If _Language <> "" Then
            _Language = _Language.Remove(0, 9)
            _Language = _Language.Remove(_Language.Length - 3, 3)
        End If
        Return _Language
    End Get
    Set(ByVal value As String)
        _Language = "<![CDATA[" & value & "]]>"
    End Set
End Property

问题在于,当我尝试设置这样的属性时:

myClass.Language = "English"

该属性设置为"English",而不是"<![CDATA[English]]>",这就是我想要的。

这是什么原因以及如何解决?

更新 在End Set上放置断点并使用Watch窗口在将属性设置为“English”后检查_Language的值时,它仍然是“英语”并且不会更改。

2 个答案:

答案 0 :(得分:1)

我怀疑该属性实际上已正确设置,但您查看该值的上下文隐藏了CDATA部分。

请在End Set上设置一个断点,并在将该属性设置为英语后使用Watch 1窗口检查_Language的值。

答案 1 :(得分:0)

你的得主是错的。它正在修改属性值!不建议将setter值更改为其他值,因为Set / Get / Set将不起作用。

基本上你的设计并不好。我会重新考虑这一点。