C#命名空间别名 - 有什么用处?

115

在哪里或何时需要使用命名空间别名?

 using someOtherName =  System.Timers.Timer;

我认为这只会增加理解该语言的混乱。


11
在C#中,全局使用using int = System.Int32怎么样?很有用吧?这与其他地方可以利用相同的用途。 - nawfal
@nawfal 我认为类型别名是不可导出的。这意味着您不能定义像 using int = System.Int32 这样的东西,并在声明文件之外的其他地方使用它。因此,这个 intInt32 的别名可能通过其他方式实现,或者是编译器/运行时中的特殊事物。 - KFL
1
@KFL 这是真的,但它们提供的好处性质相同。 - nawfal
1
@nawfal,你关于“使用int = System.Int32”的论点是错误和误导性的——它是错误的,因为int别名并不是按照你所描述的方式实现的。它是误导性的,因为你暗示类型别名可以像int覆盖Int32一样在全局范围内使用。 - KFL
3
我并没有暗示两者都有,我只是说明为什么给类型取一个自定义名称可能很有用。 - nawfal
11个回答

1
你可以很容易地使用它们来修改代码。
例如:
#if USE_DOUBLES
using BNumber = System.Double;
#else
using BNumber = System.Single;
#endif

public void BNumber DoStuff(BNumber n) {
    // ...
}
public void BNumber DoStuff2(BNumber n) {
    // ...
}
public void BNumber DoStuff3(BNumber n) {
    // ...
}

通过简单地更改指令,您可以决定您的整个代码是使用 float 还是 double 进行运作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接