SORU
28 EKİM 2008, Salı


Nasıl C sınıfı bir diğer adı mı#?

bir sınıf adı için bir diğer ad oluşturmak istiyorum. Aşağıdaki sözdizimi mükemmel olurdu:

public class LongClassNameOrOneThatContainsVersionsOrDomainSpecificName
{
   ...
}

public class MyName = LongClassNameOrOneThatContainsVersionOrDomainSpecificName;

ama derleme değil.

< / ^ hr .

Örnek

NotBu örnek için yalnızca odayı kullanışlı bir hale getirdi sağlanır. Tüm sistem tasarımını değiştirmeyi önererek de bu sorunu çözmek için çalışmayın. Bu örnek, varlığı ya da eksikliği, özgün soru değiştirmez.

Varolan bazı kod statik bir sınıfın varlığına bağlıdır:

public static class ColorScheme
{
   ...
}

Bu renk düzeni Outlook 2003 renk düzeni. Outlook 2003 renk düzeni koruyarak Outlook 2007 renk düzeni takdim etmek istiyorum:

public static class Outlook2003ColorScheme
{
   ...
}

public static class Outlook2007ColorScheme
{
   ...
}

Ama hala kod statik bir sınıf ColorScheme denilen varlığı bağlı olduğu gerçeği ile yüzleştim. İlk aklıma gelen ya Outlook2003 veya Outlook2007 soyundan ben ColorScheme bir sınıf oluşturmak için:

public static class ColorScheme : Outlook2007ColorScheme
{
}

ama statik bir sınıf soyundan olamaz.

Diğer düşüncem statik ColorScheme sınıfı oluşturmak, ama Outlook2003ColorScheme ve Outlook2007ColorScheme sınıfları statik olmayan yapmaktı. Sonra statik ColorScheme sınıf statik bir değişken ya da "" renk düzeni: . doğru işaret edebilir

public static class ColorScheme
{
    private static CustomColorScheme = new Outlook2007ColorScheme();
    ...
}

private class CustomColorScheme 
{ 
   ...
}

private class Outlook2008ColorScheme : CustomColorScheme 
{
    ...
}

private class Outlook2003ColorScheme : CustomColorScheme 
{
   ...
}

ama o benden bir sınıf geçersiz kılınabilir özelliklerini salt okunur, statik Renk entirly oluşan dönüştürmek için gerektirir, ve sonra ColorScheme benim sınıf 30 farklı özellik alıcılar bulunan nesnenin içine thunk olması gerekiyor.

Bu sadece çok fazla yazıyorum.

Bu yüzden bir sonraki düşüncem diğer sınıf:

public static ColorScheme = Outlook2007ColorScheme;

Ama bu derleme değildir.

Nasıl başka bir ad içine statik bir sınıf diğer miyim?

< / ^ hr .

Güncelleme:Birisi cevap ekleyin lütfen"C bunu#"kabul cevap olarak işaretlemek için., Herkesten aynı soruyu cevaplamak istediği soru bu, kabul cevabı, ve, ya da olmayabilir, yararlı olabilecek çok sayıda geçici çözümler bulabilirsiniz.

ben sadece bu soruyu kapatmak istiyorum.

CEVAP
28 EKİM 2008, Salı


Eğer orijinal sınıf adını değiştirirseniz, bağımlı kodu typedef yerine al bir takma ad kullanarak yazabilirsiniz:

using ColorScheme = The.Fully.Qualified.Namespace.Outlook2007ColorScheme;

Bu usingdüzenli s gibi dosya/ad üstünde gitmek var.

Eğer bu durumda pratik, ama bilmiyorum.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Fuse

    Fuse

    21 Kasım 2005
  • KoreanFrogMania님의 채널

    KoreanFrogMa

    18 Aralık 2011
  • The Verge

    The Verge

    8 AĞUSTOS 2006