Я хочу створити псевдонім для імені класу. Наступний синтаксис буде ідеальним:
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 #" , щоб я міг позначити це як прийняту відповідь. Будь-хто, хто хоче отримати відповідь на те саме питання, знайде це питання, прийняту відповідь та низку обхідних шляхів, які можуть бути, а можуть і не бути корисними.
Я просто хочу закрити це питання.