我在一个类中有以下属性:
'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的值时,它仍然是“英语”并且不会更改。
答案 0 :(得分:1)
我怀疑该属性实际上已正确设置,但您查看该值的上下文隐藏了CDATA部分。
请在End Set
上设置一个断点,并在将该属性设置为英语后使用Watch 1
窗口检查_Language的值。
答案 1 :(得分:0)
你的得主是错的。它正在修改属性值!不建议将setter值更改为其他值,因为Set / Get / Set将不起作用。
基本上你的设计并不好。我会重新考虑这一点。