gpt4 book ai didi

C#:全局别名通用类名?

转载 作者:行者123 更新时间:2023-11-30 13:50:05 26 4
gpt4 key购买 nike

在一些项目中我们使用泛型,我们得到很多这样的行:

Line<SomeTClass,SomeCClass> myLine =
(Line<SomeTClass,SomeCClass>)LineFactory.CreateLine(...)

我们可以用using X = Line<SomeTClass,SomeCClass>声明本地别名.

然后我们可以写,X myLine = (X)LineFactory.CreateLine(...) .

我们有很多 <T,C> 的组合但我们经常使用相同的。是否可以在全局范围内取消声明 using,这样我们就不必在每个文件中声明别名?

最佳答案

没有全局别名之类的东西。您可以做的是使用类型推断来简化您的声明:

var myLine = (Line<SomeTClass, SomeCClass>)LineFactory.CreateLine(...);

如果这对于推理系统来说不够具体,您可以使 CreateLine() 方法通用以强制执行它:

var myLine = LineFactory.CreateLine<Line<SomeTClass, SomeCClass>>(...);

并给出 LineFactory 类型的名称,甚至可以进一步简化它:

var myLine = LineFactory.CreateLine<SomeTClass, SomeCClass>(...);

最后一个选项在某种程度上让我感觉“正确”,我无法完全表达。以防万一你需要一点帮助,方法声明看起来像这样:

public static class LineFactory 
{
public static Line<T,C> CreateLine<T,C>(...) { ... }
}

关于C#:全局别名通用类名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7577692/

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