gpt4 book ai didi

c# - 扩展类成员的扩展方法?

转载 作者:太空宇宙 更新时间:2023-11-03 18:47:01 26 4
gpt4 key购买 nike

我想编写一个扩展方法来扩展我的类的某些成员。具体来说,我想扩展一个枚举。但是,这不起作用:

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());
}
}
}

具体来说,它不会将 GetDouble() 识别为扩展。这不仅适用于枚举,我还尝试为 double 创建扩展方法,但也遇到了同样的问题。

最佳答案

您只能在顶级、静态、非泛型类中编写扩展方法,但它们可以扩展嵌套类。这是一个基于您的代码的完整示例:

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());
}
}

关于c# - 扩展类成员的扩展方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3480572/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com