클래스 이름에 대한 별칭을 만들고 싶습니다. 다음 구문은 완벽합니다.
public class LongClassNameOrOneThatContainsVersionsOrDomainSpecificName
{
...
}
public class MyName = LongClassNameOrOneThatContainsVersionOrDomainSpecificName;
그러나 컴파일되지 않습니다.
예
참고이 예제는 편의상 제공됩니다. 전체 시스템의 디자인 변경을 제안하여이 특정 문제를 해결하려고하지 마십시오. 이 예의 존재 또는 부족은 원래 질문을 변경하지 않습니다.
일부 기존 코드는 정적 클래스의 존재 여부에 따라 다릅니다.
public static class ColorScheme
{
...
}
이 색 구성표는 Outlook 2003 색 구성표입니다. Outlook 2003 색 구성표를 유지하면서 Outlook 2007 색 구성표를 도입하고 싶습니다.
public static class Outlook2003ColorScheme
{
...
}
public static class Outlook2007ColorScheme
{
...
}
그러나 나는 코드가라는 정적 클래스의 존재에 의존한다는 사실에 여전히 직면하고 ColorScheme
있습니다. 첫 번째 생각은 또는 ColorScheme
에서 상속 할 클래스 를 만드는 것이 었습니다 .Outlook2003
Outlook2007
public static class ColorScheme : Outlook2007ColorScheme
{
}
그러나 정적 클래스에서 상속 할 수 없습니다.
내 다음 생각은 정적 ColorScheme
클래스 를 만드는 것이 었지만 make Outlook2003ColorScheme
및 Outlook2007ColorScheme
클래스는 비 정적이었습니다. 그러면 정적 ColorScheme
클래스 의 정적 변수가 "true"색 구성표를 가리킬 수 있습니다.
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;
그러나 그것은 컴파일되지 않습니다.
정적 클래스를 다른 이름으로 어떻게 별칭을 지정할 수 있습니까?
업데이트 : 누군가 "You can do this in C #" 를 추가해 주시면 수락 된 답변으로 표시 할 수 있습니다. 동일한 질문에 대한 답변을 원하는 다른 사람은이 질문, 허용 된 답변 및 유용 할 수도 있고 아닐 수도있는 여러 해결 방법을 찾을 수 있습니다.
이 질문을 종료하고 싶습니다.