将项目添加到枚举的扩展方法

Extension Method to Add Items to Enum

我正在尝试编写一个扩展方法来向枚举添加额外的项目。

我从来没有写过扩展方法,我已经查看并尝试了几个我在 Whosebug 和其他 Internet 站点上找到的示例,但是 none 似乎准确地解决了我正在尝试做的事情。我正在尝试扩展 Windows.Form.DialogResult Class。我试过下面的代码:

public static class SaveTestDialog
{
    public enum CustomDialog( this DialogResult dialogResult )
    {
        return ApiKey = 8;
        return Default = 9;
    }

}

我认为问题可能在于它是一个 Windows 方法,所以我在项目中尝试了一个简单的枚举并得到了相同的结果:

public static class CustomSchedule 
{
    public enum NewSchedule( Schedule schedule )
    {
        return Weekly = 3;
        return Contract = 4;
    }

}

对于 DialogResult,我希望在我的应用程序中使用 CustomDialog 时能够获得 DialogResult.ApiKey 和 DialogResult.Default 选项。我很感激任何帮助。

扩展方法向类型添加新的类实例方法。它们不允许您向类型添加实际成员。你想做的事是不可能的。

您没有理由不能 (DialogResult)8 并使其成为常量。

public static class ExtraDialogResults
{
    public const DialogResult ApiKey = (DialogResult)8;
    // and so on...
}

但是...仅仅因为你可以,并不意味着你应该 .更好的方法是定义您自己的枚举,它具有您需要的结果,并将对话框功能包装在 returns 的内容中。