extern 别名 (C# 参考)

可能需要引用两个具有相同完全限定类型名称的程序集版本。 例如,可能需要在同一应用程序中使用两个或更多版本的程序集。 通过使用外部程序集别名,可以将每个程序集中的命名空间包装在由别名命名的根级命名空间内。 此方法使你能够在同一文件中使用这两个版本。

C# 语言参考记录了 C# 语言的最新发布版本。 它还包含即将发布的语言版本公共预览版中功能的初始文档。

本文档标识了在语言的最后三个版本或当前公共预览版中首次引入的任何功能。

小窍门

若要查找 C# 中首次引入功能时,请参阅 有关 C# 语言版本历史记录的文章。

注释

extern 关键字还用作方法修饰符,声明以非托管代码编写的方法。

若要引用具有相同完全限定类型名称的两个程序集,请在 .csproj 文件中指定别名,并添加以下代码:

<Reference Include="grid.dll"> 
    <Aliases>GridV1</Aliases>
</Reference>
<Reference Include="grid20.dll">
    <Aliases>GridV2</Aliases>
</Reference>

可以在 Visual Studio 文档中的 CSC 任务 文章中了解详细信息。

此命令将创建外部别名 GridV1GridV2。 若要从某个程序内使用这些别名,请使用 extern 关键字引用它们。 例如:

extern alias GridV1; extern alias GridV2;

每个外部别名声明都引入了一个附加的根级命名空间,该命名空间与全局命名空间并行(但不位于)内。 可以使用其完全限定的名称(根于适当的命名空间别名)来引用每个程序集中的类型,而不含糊其含义。

在前面的示例中, GridV1::Grid 网格控件 grid.dll来自,也是 GridV2::Grid 来自 grid20.dll的网格控件。

使用 Visual Studio

如果使用 Visual Studio,可以采用类似的方式提供别名。

在 Visual Studio 中向项目添加对 grid.dllgrid20.dll 的引用。 打开属性选项卡,并分别更改globalGridV1GridV2别名

使用这些别名的方式与前面所述的相同。

extern alias GridV1;  
extern alias GridV2;  

现在,可以使用 using alias 指令为命名空间或类型创建别名。 有关详细信息,请参阅 using 指令

using Class1V1 = GridV1::Namespace.Class1;
using Class1V2 = GridV2::Namespace.Class1;

C# 语言规范

有关详细信息,请参阅 C# 语言规范。 语言规范是 C# 语法和用法的明确来源。

另请参阅