SORU
14 HAZİRAN 2010, PAZARTESİ


Genel bir sınıf statik bir üye belirli bir örneği bağlı?

Bu gerçek bir soru daha bir belge daha. Bu yüzden henüz bunu cevapsız sürece) hitaben, sahip olduğu görülüyor:

Statik bir üye içeren genel bir sınıf düşünün:

class Foo<T> {
    public static int member;
}

Her biri belirli bir sınıf için bir üye, yeni bir örneğini, ya da orada Foo tipi tüm sınıflar için sadece tek bir örneği var mı?

Kolayca bu gibi bir kod ile bunu doğrulayabilirsiniz:

Foo<int>.member = 1;
Foo<string>.member = 2;
Console.WriteLine (Foo<int>.member);

Sonuç, ne olduğunu ve nerede bu davranış belgelenmiştir?

CEVAP
14 HAZİRAN 2010, PAZARTESİ


** 5 alan tüm örnekleri arasında paylaşılıraynı türden. Foo<int> Foo<string> iki farklı türleri vardır. Bu aşağıdaki kod satırı ile kanıtlanabilir:

// this prints "False"
Console.WriteLine(typeof(Foo<int>) == typeof(Foo<string>));

Bu belgelenmiş olduğu gibi, aşağıdaki bölümde bulundu1.6.5 AlanlarıC# Dili Belirtimi (C# 3):

Statik bir alanda bir tanımlar depolama konumu. Ne kadar çok bir sınıf örneği oluşturulur hiç bir kopya var statik alan.

; Foo<int> Foo<string> aynı sınıfta değil, daha önce de belirtildiği gibi; iki farklı sınıfları aynı genel sınıf inşa ediyorlar. Bunun nasıl gerçekleştiğini yukarıda belirtilen belgenin bölüm 4.4'de özetlenmiştir:

Genel türde bir beyan, kendisi tarafından, gösterir ilişkisiz genel bir tür olan bir “” çok form plan olarak kullanılır farklı türleri, uygulanması yoluyla tür bağımsız değişkenleri.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bart Baker

    Bart Baker

    1 Aralık 2006
  • MkElite

    MkElite

    13 NİSAN 2012
  • the one am radio

    the one am r

    6 Mayıs 2006