无法访问主方法中的扩展方法
Unable to Access Extension Method in Main Method
我正在使用扩展方法将字符串转换为整数。但是我无法在 main 方法中访问扩展方法。我做错了什么。我的代码如下
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();
}
请尝试帮助我谢谢...
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
。
- 扩展方法必须在顶级静态 class 中定义,看来您的
ConvertIntExtensionMethod
class 是嵌套的 class
- 如果要将此方法添加到
string
,参数类型必须是this string
- 调用
str.ConvertToInt()
而不是 str.ConvertIntExtensionMethod()
我在扩展方法中提供了错误的参数类型。主要方法传递字符串值但扩展方法参数是整数。这是我发现的问题。
扩展方法中的更新代码如下
public static int ConvertToInt(this string str)
{
int value;
value = Convert.ToInt32(str);
return value;
}
我正在使用扩展方法将字符串转换为整数。但是我无法在 main 方法中访问扩展方法。我做错了什么。我的代码如下
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();
}
请尝试帮助我谢谢...
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
。
- 扩展方法必须在顶级静态 class 中定义,看来您的
ConvertIntExtensionMethod
class 是嵌套的 class - 如果要将此方法添加到
string
,参数类型必须是this string
- 调用
str.ConvertToInt()
而不是str.ConvertIntExtensionMethod()
我在扩展方法中提供了错误的参数类型。主要方法传递字符串值但扩展方法参数是整数。这是我发现的问题。
扩展方法中的更新代码如下
public static int ConvertToInt(this string str)
{
int value;
value = Convert.ToInt32(str);
return value;
}