重命名特定类库

时间:2018-05-14 13:20:18

标签: c# .net

我使用的是一个使用名为" Transaction"的类的库。问题是我想在我的项目中定义一个同名的类。

我知道别名,但问题是它看起来真的很难看。有没有办法只为特定类型使用别名?所以我不必为库中的每个类使用Alias.Class,但只有当我使用Transaction时?

示例(Class1,Class2和Transaction在同一个库指令中):

Class1 obj1 = new Class1();
Class2 obj2 = new Class2();
Library.Transaction obj3 = new Library.Transaction();

3 个答案:

答案 0 :(得分:2)

在代码顶部写入别名(使用部分):

using ExternalTransaction = Library.Transaction;

或者可能不那么混乱:

using Library_Transaction = Library.Transaction;
//Or using TransactionAlias = Library.Transaction;

然后像:

一样使用它
ExternalTransaction et = new ExternalTransaction();
//Library_Transaction lt = new Library_Transaction();
//TransactionAlias ta = new TransactionAlias();

<强> DotNetPerl's example

答案 1 :(得分:1)

如果Class1,Class2和Transaction在同一名称空间中,那么不可以,因为您对整个名称空间进行了别名。然后,您可以完全限定类型Namespace.Class或为类型

定义单独的命名空间

答案 2 :(得分:1)

这不是一个罕见的问题。事实上,我们特别针对不同的“Timer”类提出了这些问题。其中有at least 4 in the .NET Framework。这一切都是花花公子,除非您偶然使用其他时间名称空间(可能很容易发生)。

对于这些情况,有3个选项:

  1. 重命名类,使其部分名称不明显
  2. 停止使用两个(或全部)指令。使用完全限定名称insteand
  3. 选项2,只需使用类型别名,以防止您必须在每个单点写入完全限定名称。它还允许您在一个地方交换类型。