将vb.net代码段转换为c#

时间:2011-03-03 04:56:12

标签: c# vb.net

Visual Studio 2005。

我将部分源代码转换为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

非常感谢任何建议,

4 个答案:

答案 0 :(得分:7)

使用静态char.IsNumber()

char.IsNumber(e.KeyChar);

顺便说一下,我想你想用char.IsDigit()代替。这来自MSDN网站:

  

IsNumber()确定Char是否属于任何数字Unicode类别。这与IsDigit()形成对比,后者确定Char是否是基数为10的数字。

换句话说,IsNumber()对于非西方数字(如六(中文'6'))也会返回true。

答案 1 :(得分: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
    }
}

答案 2 :(得分:0)

解决。

使用以下内容:

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

答案 3 :(得分:0)

我们通常使用developer fusion将代码从vb.net转换为c#,反之亦然。 你也可以尝试一下。