我知道我可以通过泛型做到这一点,如下所示,但我如何构建扩展以使用泛型返回父类型?扩展返回父类型
通用扩展签名: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