Как мне назначить псевдоним имени класса без необходимости добавлять строку кода в каждый файл, использующий этот класс?C#

Место общения программистов C#
Ответить
Anonymous
 Как мне назначить псевдоним имени класса без необходимости добавлять строку кода в каждый файл, использующий этот класс?

Сообщение Anonymous »

Я хочу создать псевдоним для имени класса. Следующий синтаксис был бы идеальным:

Код: Выделить всё

public class LongClassNameOrOneThatContainsVersionsOrDomainSpecificName
{
...
}

public class MyName = LongClassNameOrOneThatContainsVersionOrDomainSpecificName;
но он не скомпилируется.

Пример
Примечание Этот пример приведен только для удобства. Не пытайтесь решить эту конкретную проблему, предлагая изменить конструкцию всей системы. Наличие или отсутствие этого примера не меняет исходный вопрос.
Некоторые существующие коды зависят от наличия статического класса:

Код: Выделить всё

public static class ColorScheme
{
...
}
Эта цветовая схема соответствует цветовой схеме Outlook 2003. я хочу представить цветовую схему Outlook 2007, сохранив при этом цветовую схему Outlook 2003:

Код: Выделить всё

public static class Outlook2003ColorScheme
{
...
}

public static class Outlook2007ColorScheme
{
...
}
Но я все еще сталкиваюсь с тем, что код зависит от наличия статического класса ColorScheme. Моей первой мыслью было создать класс ColorScheme, который я унаследую от Outlook2003 или Outlook2007:

Код: Выделить всё

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
{
...
}
но для этого мне потребуется преобразовать класс, состоящий полностью из статических цветов, доступных только для чтения, в переопределяемые свойства, а затем мой класс ColorScheme должен будет иметь 30 различных методов получения свойств, которые будут преобразованы в содержащийся объект.
Это слишком много ввода.
Поэтому моей следующей мыслью было создать псевдоним класса:

Код: Выделить всё

public static ColorScheme = Outlook2007ColorScheme;
Но это не компилируется.
Как я могу присвоить статическому классу другое имя?

Обновление: Может ли кто-нибудь добавить ответ "Вы не можете сделать это в C#", чтобы я мог пометить его как принятый ответ. Любой, кто хочет получить ответ на тот же вопрос, найдет этот вопрос, принятый ответ и ряд обходных путей, которые могут быть, а могут и нет, полезными.
Я просто хочу закрыть этот вопрос.

Подробнее здесь: https://stackoverflow.com/questions/244 ... ery-file-t
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»