gpt4 book ai didi

c# - 检查给定对象是否为特定值类型的更好方法是什么?

转载 作者:行者123 更新时间:2023-11-30 20:56:17 25 4
gpt4 key购买 nike

<分区>

以下是两种常用的开箱前检查方法。

myObject.GetType() == typeof(MyValueType)

IL_0001: callvirt System.Object.GetType
IL_0006: ldtoken UserQuery.MyValueType
IL_000B: call System.Type.GetTypeFromHandle
IL_0010: call System.Type.op_Equality


myObject is MyValueType

IL_0001: isinst UserQuery.MyValueType

另外,我想知道为什么 C# 调用 System.Type.op_Equality 而不是 ceq 这不是引用相等性检查吗?

更新

其实还有第三种方法。 (简而言之,来自 C# 5.0)

MyValueType? x = myObject as MyValueType?;

然后检查x.HasValue并使用x.Value

您会使用 3 种中的哪一种?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com