编程语言
首页 > 编程语言> > C#找不到char结构的扩展方法

C#找不到char结构的扩展方法

作者:互联网

基本上,我写了这个扩展方法:

public static class Extensions 
{
    public static bool IsMaths(this Char it)
    {
        if (char.IsDigit(it) || char.IsControl(it)) { return true; }
        foreach (char each in new char[] { '-', '+', '(', ')', '/', '*', '%', '^', '.' })
        {
            if (each.Equals(it)) { return true; }
        }
        return false;
    }
}

当我试着打电话时:

else if (!Char.IsMaths(e.KeyChar)) { e.Handled = true; }

Visual Studio给出了’char’不包含’IsMaths’定义的错误.为什么会这样?

解决方法:

Visual Studio gives me the error that ‘char’ does not contain a
definition for ‘IsMaths’. Why is this so?

因为扩展方法适用于类型的实例,而不适用于类型本身.您正在使用静态字符方法,这就是为什么它不可能.

你想做:

else if (!e.KeyChar.IsMaths()) { e.Handled = true; }

标签:c,extension-methods
来源: https://codeday.me/bug/20190715/1466374.html