什么时候必须在C#中使用extern alias关键字?

时间:2010-02-27 12:13:33

标签: c# keyword

我们必须在C#中使用extern alias关键字吗?

2 个答案:

答案 0 :(得分:29)

基本上,当您想要使用来自不同程序集的具有相同完全限定名称(相同名称空间,相同类型名称)的两种类型时,您才真正需要它。您为每个程序集声明了一个不同的别名,因此您可以通过该别名引用它们。

毋庸置疑,你应该尽量避免陷入这种情况:)

答案 1 :(得分:29)

它可以帮助你将自己从真正深度挖出的版本中挖出来。假设您的程序的第一个版本使用此类

using System;

namespace Acme.Financial.Banking {
  [Serializable]
  public class BankAccount {
    public double Balance { get; set; }
    //...
  }
}

你已经用它序列化了很多银行账户记录。一位会计师开始抱怨资产负债表被罚款十亿分之一,所以你改变了班级:

  public decimal Balance { get; set; }

问题解决了,下一位客户的资产负债表很快乐。在您被要求以旧格式升级包含大量序列化记录的现有客户之前。很大的问题,因为课程已经改变,你不能再反序列化记录了。

extern别名解决了您的问题,您可以在代码中引用该类的旧版本和新版本,即使命名空间名称和类名称相同。