je veux créer un alias pour un nom de classe. La syntaxe suivante serait parfait:
public class LongClassNameOrOneThatContainsVersionsOrDomainSpecificName
{
...
}
public class MyName = LongClassNameOrOneThatContainsVersionOrDomainSpecificName;
mais il ne compile pas.
Exemple
Remarque Cet exemple est fourni pour convience seulement. Ne pas essayer de résoudre ce problème en suggérant l'évolution de la conception de l'ensemble du système. La présence, ou l'absence de cet exemple ne change pas la question d'origine.
Le code existant dépend de la présence d'une classe statique:
public static class ColorScheme
{
...
}
Ce schéma de couleur est la Outlook 2003 schéma de couleur. je veux vous présenter un Outlook 2007 schéma de couleurs, tout en conservant la Outlook 2003 schéma de couleur:
public static class Outlook2003ColorScheme
{
...
}
public static class Outlook2007ColorScheme
{
...
}
Mais je suis toujours aux prises avec le fait que le code dépend de la présence d'une classe statique appelé ColorScheme. Ma première pensée a été de créer un ColorScheme classe que je vais descendre, soit à partir d'Outlook2003 ou Outlook2007:
public static class ColorScheme : Outlook2007ColorScheme
{
}
mais vous ne pouvez pas descendre d'une classe statique.
Ma prochaine idée a été de créer la statique ColorScheme classe, mais de faire de la Outlook2003ColorScheme et Outlook2007ColorScheme classes non-statique. Ensuite, une variable statique statique ColorScheme classe peut pointer vers le "vrai" schéma de couleur:
public static class ColorScheme
{
private static CustomColorScheme = new Outlook2007ColorScheme();
...
}
private class CustomColorScheme
{
...
}
private class Outlook2008ColorScheme : CustomColorScheme
{
...
}
private class Outlook2003ColorScheme : CustomColorScheme
{
...
}
mais cela m'obligerait à convertir une classe composée entirly readonly Couleurs statiques dans substituables propriétés, puis mon ColorScheme classe aurait besoin d'avoir les 30 propriété getters thunk vers le bas dans le contenu de l'objet.
C'est juste trop tapé.
Donc ma prochaine pensée a été de faire un alias de la classe:
public static ColorScheme = Outlook2007ColorScheme;
Mais cela ne veut pas compiler.
Comment puis-je attribuer une classe statique dans un autre nom?
Mise à jour: quelqu'un Peut s'il vous plaît ajouter la réponse "Vous ne pouvez pas le faire en C#", si je peux marquer que l'on a accepté la réponse. Quelqu'un d'autre qui voudrait la réponse à la même question sera de trouver cette question, la accepté de répondre, et un certain nombre de solutions qui pourraient, ou non, être utile.
je veux juste fermer cette question.