gpt4 book ai didi

c# - 泛型方法的条件编译

转载 作者:太空狗 更新时间:2023-10-29 21:45:55 24 4
gpt4 key购买 nike

目前正在研究 2-way lookup association generic,按 TKey 排序。在某些时候,我希望能够像下面这样访问:

public class Assoc<TKey, TValue>
{
public TKey this[TValue value] { get; }
public TValue this[TKey value] { get; }
}

但很明显,当 TKey == TValue 时,这将失败。出于好奇,是否有条件编译语法来执行此操作:

public class Assoc<TKey, TValue>
{
[Condition(!(TKey is TValue))]
public TKey this[TValue value] { get; }

[Condition(!(TKey is TValue))]
public TValue this[TKey value] { get; }

public TKey Key(TValue value) { get; }

public TValue Value(TKey value) { get; }
}

最佳答案

不,没有基于泛型类型的条件编译。

泛型替换在运行时执行,而不是编译时。

这是 .NET 泛型和 C++ 模板之间的区别之一。

泛型也没有 C++ 模板所具有的特化概念。

http://msdn.microsoft.com/en-us/library/c6cyy67b.aspx

关于c# - 泛型方法的条件编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11998734/

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