gpt4 book ai didi

c# - 如何比较两个 System.Types?

转载 作者:行者123 更新时间:2023-11-30 19:13:23 24 4
gpt4 key购买 nike

我以前做过无数次,但我记不清了,我觉得问这个问题有点愚蠢。

如何比较两种运行时类型?我假设 System.Type 不会覆盖 == 运算符,因此该运算符会执行引用相等性检查。

我想做一个值(value)平等。喜欢:

someObject.GetType() == GetTypeFromSomeAssemblyUsingReflection(
"Namespace.TypeName",
objAssemblyToGetTheTypeFrom);

我可以使用 IsAssignableFrom() 但这并不是我想要做的,因为它会扩大范围。我只想把类型等同起来,就像我做的那样:

if obj is Cat // where Cat is the name of a class

if ( (obj as Cat) != null )

最佳答案

== 运算符应该可以进行类型相等性检查。例如,这通过了:

[Test]
public void TypeEquality()
{
var monkey = new Monkey();
var areEqual = (monkey.GetType() == typeof(Monkey));
Assert.That(areEqual, Is.True);
}

关于c# - 如何比较两个 System.Types?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3726883/

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