2014-06-15 5 views
0

VB 프로그램을 C#으로 번역 중입니다.TextBox.Text가 다른 형식을 허용하도록 허용

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 

방법

Me.xXXTextBox.Text = Me._settings.XXX 

있는 유일한 방법은 위의 RHS는 문자열이 아니라 즉, VB 프로그램은의 WinForm 컨트롤이하고 설정 부분에 다음과 같은 코드가 사용됩니다 C#에서 위의 작업을 수행합니까? 나는 C#으로 코드를 번역했지만 타입 "mis-match"를 지나칠 수 없다.

VB 프로그램에서 더 많은 배경을 보려면 TextBoxTextBox에서 상속받은 NumericTextBox으로 구현됩니다. 나는 이것을 C#에서도 구현했지만 아직 시도하지는 않았다.

내가 누락되었지만 무엇인지 알 수 없습니다.

+3

'_settings.XXX.ToString()'? – elgonzo

+0

몇 가지 무료 [코드 변환 도구] (http://www.developerfusion.com/tools/convert/vb-to-csharp/)를 사용해 보셨습니까? –

+3

아 ... VB.NET에서'Option Strict On'을 사용하지 않을 때의 기쁨. – Tim

답변

0

singlestring으로 변환하면됩니다. C#을 (당신이 그것에 대해 행복해야한다) VB.NET과 같은 명시 적 타입 캐스팅에 그 쉬운 일이 아니다 :

this.xXXTextBox.Text = Convert.ToString(this._settings.XXX) 

또는

this.xXXTextBox.Text = this._settings.XXX.ToString() 
1

VB는 종종 암시 적 변환을 허용하므로 C#에서는 허용되지 않으므로 첫눈에 _settings.XXX.ToString()을 사용하는 것이 좋습니다.

그러나 질문에서 마지막 단락을 읽은 후, 나는 그렇게 확신하지 않습니다. NumericTextBox.TextString 또는 Single이어야하는지 확인하려면 VB 소스를 확인해야합니다. 단일 인 경우 C# 번역에서 동일한 기능을 구현해야합니다. 문자열 인 경우 ToString 메서드를 사용해야합니다.

+0

NumericTextBox는 TextBox에서 상속되며 OnKeyPress 이벤트를 재정 의하여 입력을 숫자로만 제한합니다. 그 외에도 Text에서 각 유형 (Int32 또는 Decimal)을 반환하고 Readonly 및 AllowSpace 속성 (R/W)을 반환하는 3 개의 새 속성 IntValue 및 DecimalValue가 있습니다. 이 경우 –

+0

에 명시적인 변환 (예 : ToString)을 사용하십시오. –