提问人:ack 提问时间:1/23/2021 更新时间:8/6/2023 访问量:439
如何从另一个类/文件引用 Using Alias 指令
How do I reference a Using Alias Directive from another class/file
问:
我有一个 using alias 指令来别名一个复杂的类型以提高可读性。
namespace MyNamespace
{
using ColorMap = SortedDictionary<float, Color>;
public class Foo
{
public ColorMap colors = new ColorMap();
...
}
}
在另一个文件(这个类的测试)中,我有:
namespace MyNamespace.Tests
{
public class TestFoo
{
[Fact]
public void TestFooCtor()
{
SortedDirctionary<float, Color> colorMap =
new SortedDirctionary<float, Color>
// Want to be able to just do this:
//ColorMap colorMap = new ColorMap();
...
}
}
}
有什么方法可以从我的测试中引用 ColorMap 而不会用另一个指令重复我自己?using
看来我应该能做到?真的,我希望我能使这个“typedef”归类 Foo 所有,然后能够通过说 来引用它。在 C# 中似乎都不可能?如何执行可在客户端代码中使用的 C++ 样式类型定义。MyNamespace.ColorMap
Foo.ColorMap
答:
2赞
TheGeneral
1/23/2021
#1
不,你不能这样做:
using 指令的范围仅限于它所在的文件 出现。
进一步澄清:
鉴于
namespace N3
{
using R = N1.N2;
}
namespace N3
{
class B: R.A {} // Error, R unknown
}
引入 R 的using_alias_directive范围仅扩展 添加到包含它的命名空间正文中的成员声明, 所以 R 在第二个命名空间声明中是未知的。
简而言之,它们仅在它们声明的封闭编译单元或直接命名空间中有效,并且仅限于它们所在的文件。
评论