2011-03-03 113 views
3

Visual Studio 2005.將vb.net代碼片段轉換爲c#

我正在將一些源代碼轉換爲C#。

但是,當我在做下面的代碼片段時,我注意到我沒有IsNumber方法。

爲什麼IsNumber缺失?我想使用它,以便強制用戶只輸入數字。

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress 
     If e.KeyChar.IsNumber(e.KeyChar) = False Then 
      e.Handled = True 
     End If 
End Sub 

非常感謝您的任何建議,

回答

7

使用靜態char.IsNumber()

char.IsNumber(e.KeyChar); 

順便說一句,我想你想使用char.IsDigit()來代替。這來自MSDN站點:

IsNumber()確定Char是否具有任何數字Unicode類別。這與IsDigit()形成對比,後者確定Char是否是基數爲10的數字。

換句話說,IsNumber()也對非西方數字如六(中文'6')返回true。

+0

謝謝你,你到了我的面前。 – ant2009 2011-03-03 05:02:54

0

已解決。

使用下列內容:

if (char.IsNumber(e.KeyChar) == false) 
    { 
     e.Handled = true; 
    } 
3

C#是允許你調用共享成員的一個實例變量更加嚴格。

你原來的代碼在VB中給我一個警告。

警告1通過實例訪問共享成員,常量成員,枚舉成員或嵌套類型;符合條件的表達式將不會被評估。

在C#中 - 這是不允許的。您的解決方案使用char.IsNumber是一種方法;而且這些代碼在任何一種語言中的工作都是一樣的

public class Example1 
{ 
    public static int Test() { return 0; } 

    public Example1() 
    { 
     this.Test(); // This doesn't work 
     Example1.Test(); // This does 
    } 
} 
0

我們通常使用developer fusion將代碼從vb.net轉換爲c#,反之亦然。 你也可以試試。