【问题标题】:How to assign multiple names simultaneously to a C# class如何同时为 C# 类分配多个名称
【发布时间】:2011-06-14 19:30:37
【问题描述】:

有没有办法给一个C#类起多个名字,例如:

类Foo{}

class AlternativeFooName 指的是 Foo

我希望能够通过 Foo 和 AlternativeFooName 这两个名称访问 Foo,但不必从 Foo 继承。

为此的应用程序会给一个类一个长的描述性名称,但在使用它时能够缩写它,例如:

而不是 Foo f= 新的 Foo(); 能够使用以下具有相同效果: F f= 新的 F();

【问题讨论】:

  • using AlternativeFooName = Foo; 适合你吗?
  • 我不认为必须处理具有多个名称的同一个类的开销(就开发人员对代码的理解而言)可以通过键入更少字符来使用这样的小优势来抵消一类。此外,使用 Intellisense 似乎完全没有必要,因为人们通常可以访问一个类而无需输入整个名称。
  • @Kibbee:通常情况下,“这取决于”。当我有两个属于不同程序集的名称不明确的类时,我发现类型别名很好,这比您想象的更频繁(例如,当将两个不同的供应商系统粘合在一起时,每个人都有自己的 Customer 或 Order 类)。当类型别名在手腕上更容易使用时,为什么要使用完全限定的命名空间来区分 Initech 的 Customer 类和 MegaCorp 的 Customer。
  • 名称应该是一个简洁但足够描述性的名称,并且您应该在该类的文档/cmets 中放置一个“长描述”。
  • @Juliet:如果原因是为了解决冲突的命名空间,我会说这是一个很好的理由。虽然我可能会选择延长课程的长度。即,Customer = AbcCustomer,其中 Abc 是它所在的命名空间的简写。由于需要多个名称的唯一原因被列为“减少打字”,这似乎是个坏主意。

标签: c# class inheritance syntax


【解决方案1】:

using 指令也适用于类,例如:

using C = System.Console;

【讨论】:

  • 谢谢!正是我需要的!
【解决方案2】:

您可以使用using 语句,例如:

using Foo = My.Namespace.LongFoo;

【讨论】:

  • 注意这是一个使用指令。 using statement 是“using(Stream s = new FileStream blah blah blah...”
  • 谢谢!正是我需要的!
  • 对不起,我无法将您的答案标记为正确(因为只允许一个答案,尽管我也为您的答案投票。)。不过非常感谢您的回答!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-27
  • 2011-09-16
  • 2021-07-29
  • 2014-09-14
  • 2013-08-02
相关资源
最近更新 更多