我正在将VB程序翻译成C#。 VB程序有一个WinForm控件,在设置部分,使用以下代码,
Me.xXXTextBox.Text = Me._settings.XXX
唯一的问题是上面的RHS不是字符串,而是
Public Property XXX() As Single
Get
Return Me._xXX
End Get
Set(ByVal value As Single)
If value <> Me._xXX Then
Me._xXX = value
Me._dirty = True
End If
End Set
End Property
我如何在C#中执行上述操作?我已将代码翻译成C#但我无法得到 超过“不匹配”类型。
仅为了更多背景知识,在VB程序中,TextBox
实现为NumericTextBox
,继承自TextBox
。我已经在C#中实现了这个,但仍然没有。
我遗失了一些东西,但我无法弄清楚它是什么。
答案 0 :(得分:1)
VB经常允许c#不允许的隐式转换,因此乍一看我建议使用_settings.XXX.ToString()
。
然而,在阅读你问题的最后一段后,我不太确定。您需要检查VB源代码,以查看NumericTextBox.Text
是String
类型还是Single
类型。如果它是单一的,您需要在c#转换中实现相同的功能。如果是字符串,则需要使用ToString
方法。
答案 1 :(得分:0)
只需将single
转换为string
即可。 C#在显式类型转换上并不像VB.NET那么容易(你应该对此感到高兴):
this.xXXTextBox.Text = Convert.ToString(this._settings.XXX)
或者
this.xXXTextBox.Text = this._settings.XXX.ToString()