簡體   English   中英

將項目添加到枚舉的擴展方法

[英]Extension Method to Add Items to Enum

我正在嘗試編寫一種擴展方法,該方法將向枚舉添加其他項。

我從沒有寫過擴展方法,沒有看過並嘗試過在Stackoverflow和其他Internet站點上找到的幾個示例,但是似乎沒有一個確切地解決我要做的事情。 我正在嘗試擴展Windows.Form.DialogResult類。 我試過下面的代碼:

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並將其(DialogResult)8常數。

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

但是 ... ...僅僅因為你可以 ,並不意味着你應該 更好的方法是定義自己的枚舉,該枚舉具有所需的結果,並將對話框功能包裝在返回該枚舉的內容中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM