gpt4 book ai didi

c# - 类型未知时比较数字类型

转载 作者:行者123 更新时间:2023-11-30 13:56:29 27 4
gpt4 key购买 nike

我有两个要比较的值:

var value1 = someProperty.GetValue(x);
var value2 = someOtherProperty.GetValue(y);

if (value1 == value2)
{
// do something
}

其中 somePropertysomeOtherPropertyPropertyInfo 对象。换句话说,我通过反射获取值。

问题是,如果 value1 最终是一个 int,值为 4,而 value2 最终是作为一个值为 4byte,我希望能够分辨出它们是相同的。有没有一种方法可以比较两个数值而不考虑它们的类型?最好仍然允许比较两个字符串(所以我不能真正将 value2 转换为 int 因为它可能会证明它是一个 字符串).

最佳答案

一种选择是使用dynamic。这将使编译器发出动态调用站点并要求 DLR 启动以在运行时比较对象。

object obj1 = (int)4;//Default is int, but added to make intent clear
object obj2 = (byte)4;
Console.WriteLine(obj1 == obj2);
Console.WriteLine((dynamic)obj1 == (dynamic)obj2);

打印

False
True

关于c# - 类型未知时比较数字类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27972266/

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