gpt4 book ai didi

C# 版本的 remove_reference

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

是否有 C++ 的 std::remove_reference<T> 的等价物?在 C# 中?

我有一个 StringString& ,而在我现在的项目中,这些应该被认为是等效的。

在 C++ 中,我会做类似 is_same<T1, remove_reference<T2>::type>::value 的事情,但在 C# 中,我想不出任何比较这些类型的好方法。我想到的最好的(而且很糟糕)是:

if (
0 == String.Compare(type1.Name, type2.Name + "&")
|| 0 == String.Compare(type1.Name + "&", type2.Name)
)

我试过了 Type.IsAssignableFrom ,并查看所有各种属性,但到目前为止似乎没有任何效果。

最佳答案

认为您正在寻找的是:

if (type2.IsByRef && type2.GetElementType() == type1)

参见 GetElementType()IsByRef有关详细信息的文档。

请注意,IsByRef 部分是必需的,以避免 string[] 以及 string& 为真。

关于C# 版本的 remove_reference<T>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58438163/

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