我知道我可以通過泛型做到這一點,如下所示,但我如何構建擴展以使用泛型返回父類型?擴展返回父類型
通用擴展簽名:public static TEnum FromString<TEnum>(this Enum par , string val) where TEnum : Enum {
return (TEnum) Enum.Parse(par.GetType(), val);
}
簽名的風格,我知道它不會工作,但有點什麼即時尋找。
public static this FromString(this Enum par , string val) {
return Enum.Parse(par.GetType(), val);
}
基本上我有一系列的Enum的值被解析爲字符串的一個進程和作爲接收器我需要解析該字符串值的Enum進行驗證。最終,如果string
值在枚舉器中不是有效值,它將返回空值或default
值。其實我需要能夠返回source
枚舉器的類型,而不必做一個通用的。
如果它不可能,那就是kewl,只是想我會嘗試做到沒有泛型,並使用擴展邏輯模式來做到這一點。
有沒有你不」的理由不想用泛型來做這件事? – Blachshma
已經把它作爲一個泛型來完成,只是想知道它是否可能將擴展視爲泛型的副作用。 – GoldBishop