我想写一个扩展方法,扩展我班级的一些成员.具体来说,我想扩展一个枚举.但是,这不起作用:
namespace mynamespace
{
public class myclass
{
public enum ErrorCodes
{
Error1, Error2, Error3
}
public static double GetDouble(this ErrorCodes ErrorCode)
{
return (double)((int)ErrorCode);
}
public void myfunc()
{
ErrorCodes mycode;
MessageBox.Show(mycode.GetDouble().ToString());
}
}
}
Run Code Online (Sandbox Code Playgroud)
具体来说,它不会将GetDouble()识别为扩展名.这不仅仅适用于枚举,我尝试为双打创建扩展方法,也遇到了同样的问题.
您只能在顶级,静态,非泛型类中编写扩展方法,但它们可以扩展嵌套类.这是一个完整的示例,基于您的代码:
using System;
public static class Extensions
{
public static double GetDouble(this Outer.ErrorCode code)
{
return (double)(int)code;
}
}
public class Outer
{
public enum ErrorCode
{
Error1, Error2, Error3
}
}
public class Test
{
public static void Main()
{
Outer.ErrorCode code = Outer.ErrorCode.Error1;
Console.WriteLine(code.GetDouble());
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1713 次 |
| 最近记录: |