我正在使用扩展方法将字符串转换为整数。但是我无法在主要方法中访问扩展方法。我做错了什么。我的代码在下面
public static class ConvertIntExtensionMethod
{
public static int ConvertToInt(this int str) {
int value;
value = Convert.ToInt32(str);
return value;
}
}
static void Main(string[] args)
{
string str = "100";
//int i = 10;
//bool result = i.IsGreaterThan(100);
int result = str.ConvertIntExtensionMethod(); //Here is the problem
Console.WriteLine(result);
Console.ReadLine();
}
请尝试帮助我谢谢您...
答案 0 :(得分:1)
str
不包含任何称为ConvertIntExtensionMethod()
的成员。您需要这样做:
public static class ConvertIntExtensionMethod
{
public static int ConvertToInt(this string str)
{
int value;
value = Convert.ToInt32(str);
return value;
}
}
class Program
{
static void Main(string[] args)
{
string str = "5";
//int i = 10;
//bool result = i.IsGreaterThan(100);
int result = ConvertIntExtensionMethod.ConvertToInt(str); //Here is the problem
Console.WriteLine(result);
Console.ReadLine();
}
}
它将整数从string
转换为int
。
答案 1 :(得分:1)
ConvertIntExtensionMethod
类是嵌套类string
,则参数的类型必须为this string
str.ConvertToInt()
而不是str.ConvertIntExtensionMethod()
答案 2 :(得分:-2)
我在扩展方法中输入了错误的参数类型。主方法传递字符串值,但扩展方法参数为整数。这是我发现的问题。
扩展方法中的更新代码如下所示
public static int ConvertToInt(this string str)
{
int value;
value = Convert.ToInt32(str);
return value;
}