我有以下代码.
public static void GuessTheType()
{
dynamic hasValue = true;
dynamic value = "true";
var whatami1 = hasValue ? (string)value : null;
var whatami2 = hasValue ? bool.Parse(value) : true;
var whatami3 = hasValue ? (bool)bool.Parse(value) : true;
}
Run Code Online (Sandbox Code Playgroud)
编译器推断的类型whatami1是string.
编译器推断的类型whatami2是dynamic.
编译器推断的类型whatami3是bool.
为什么第二种类型不是bool?
为了扩展 PetSerAl 的注释,解释了为什么它被视为动态,您可以bool.Parse通过将值转换为字符串来避免将调用视为动态:
var whatami2 = hasValue ? bool.Parse((string)value) : true;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
110 次 |
| 最近记录: |