我想为一个类名创建一个别名。下面的语法将是完美的:
public class LongClassNameOrOneThatContainsVersionsOrDomainSpecificName
{
...
}
public class MyName = LongClassNameOrOneThatContainsVersionOrDomainSpecificName;
但无法编译。
注意 此示例仅为方便起见而提供。不要试图通过建议改变整个系统的设计来解决这个特定的问题。这个例子的存在或缺乏并没有改变最初的问题。
一些现有代码依赖于静态类的存在:
public static class ColorScheme
{
...
}
此配色方案是 Outlook2003配色方案。我想介绍一个 Outlook2007配色方案,同时保留 Outlook2003配色方案:
public static class Outlook2003ColorScheme
{
...
}
public static class Outlook2007ColorScheme
{
...
}
但是我仍然要面对这样一个事实,即代码依赖于一个名为 ColorScheme
的静态类的存在。我的第一个想法是创建一个从 Outlook2003
或 Outlook2007
继承的 ColorScheme
类:
public static class ColorScheme : Outlook2007ColorScheme
{
}
但是不能从静态类继承。
我的下一个想法是创建静态的 ColorScheme
类,但是使 Outlook2003ColorScheme
和 Outlook2007ColorScheme
类成为非静态的。然后,静态 ColorScheme
类中的一个静态变量可以指向“真正的”配色方案:
public static class ColorScheme
{
private static CustomColorScheme = new Outlook2007ColorScheme();
...
}
private class CustomColorScheme
{
...
}
private class Outlook2008ColorScheme : CustomColorScheme
{
...
}
private class Outlook2003ColorScheme : CustomColorScheme
{
...
}
但这需要我将一个完全由只读静态 Colors 组成的类转换为可重写属性,然后我的 ColorScheme
类需要将30个不同的属性 getter 插入到所包含的对象中。
打字太多了。
所以我的下一个想法就是给这个班起个别名:
public static ColorScheme = Outlook2007ColorScheme;
但是没有编译。
如何将静态类别名为另一个名称?
更新: 是否有人可以添加答案 “你不能在 C # 中这样做”,这样我就可以将其标记为已接受的答案。任何想要得到同一个问题答案的人都会发现这个问题、公认的答案,以及一些可能有用,也可能没有用的变通方法。
我只想结束这个问题。