【发布时间】:2018-05-12 04:23:14
【问题描述】:
我有以下通用方法签名
public static T? TryConvertToEnum<T>(object obj, T? defaultValue = null) where T : struct, IConvertible
效果很好!我遇到的问题是 VS 在此调用中似乎出现了意外行为:
dynamic dynamicValue = "1";
var value= ConversionHelper.TryConvertToEnum<MyEnum>(dynamicValue);
问题是“值”的类型是“动态”,我不知道为什么我希望它是“MyEnum?”
是否有人预料到这种行为或知道为什么会发生这种情况?
【问题讨论】:
-
使用 C# 7.3 你可以使用
where T : Enum -
@SebastianHofmann 你需要VS 2017.7 ....
-
dynamic是一种类型...它不是像var这样的语法糖。 -
您可以将变量声明为 MyEnum 值而不是 var。
标签: c#