我想創建一個擴展方法,將任何枚舉轉換爲Json字符串。我可以擴展Enum a la Enum.GetValues()嗎?
我想能夠附加一個擴展方法給枚舉,我可以通過枚舉類型,以便它可以調用Enum
調用Enum.GetValues(Type enumType)
,所以它可能看起來像:
Enum.ToJsonString(Type enumType)
看來,這是不可能的 - 枚舉是一個抽象類;你怎麼能延長這一點? - 而且我將不得不創建自己的靜態類型來實現這一點。
任何人都可以證實我不能擴展Enum這種方式(請解釋,技術上,爲什麼),或告訴我怎麼可以?
澄清(更新)
我知道我可以用我自己的靜態類型做到這一點。例如,創建EnumExtensions.ToJsonString(Type enumType)
相當容易,但我寧願將方法與GetValues()等一起列出,並使用VS intellisence自動完成。
你的意思是任何枚舉或任何枚舉*值*?擴展方法總是顯示爲* instance *方法,而不是靜態方法。瞭解更多關於你希望你的方法做什麼以及如何調用它的信息會很有用。 –
我的意思是任何枚舉。我希望能夠將任何枚舉的所有可能值轉換爲帶有名稱/散列碼作爲json中的鍵/值對象的json字符串。 – Faust