2010-02-22 22 views
5

Statik değişkenler C++ ile C++ uygulamasında olduğu gibi aynı veya benzer işlevselliğe sahiptirler mi?C++ vs C# statik değişkeni arasındaki fark nedir?

Düzenleme:

birçok farklı bağlamlarda statik değişkenler kullanabilirsiniz C++ ile

- örneğin: 1) Küresel değişkenler, 2) Yerel fonksiyon değişkenleri, 3) Sınıf üyeleri - C# benzer kullanımları benzer davranır mıydım C++?

cevap

5

Statik C++ 'da birden çok anlam vardır.

C# içerisindeki statik değişkenler yalnızca tek bir anlama sahiptir: değişkenler, bir türe göre kapsamlıdır. C# 'da, bir türdeki statik bir tür kapsamlı değişkeni belirtmek için kullanılır. Bir metotta statik, tip-kapsamlı bir yöntemdir. Statik, tüm sınıfın yalnızca statik yöntemlerden, özelliklerden ve alanlardan oluştuğunu belirtmek için bir sınıfta da kullanılabilir.

Bir işlev kapsamı veya sınıf dışı statik değerler olarak statik değişkenler için hiçbiri yoktur.


Düzenleme:

Düzenlemenizle Cevabı ise

, C# temelde sadece sınıf üyeleri için statik kullanır. Globals ve yerel statik işlev değişkenleri C# 'da desteklenmez. Buna ek olarak, yukarıda belirttiğim gibi, bütünüyle sınıfın statik olmayan üyeleri olmadığını kontrol eden derleyiciyi yapan bir "statik" sınıfını da işaretleyebilirsiniz.

0

C# 'da bir statik değişken, C++' da statik üye değişkeni gibi davranır. Bu, C++ 'statik' anahtar sözcüğünün çoklu anlamlarından yoksun, C# bağlamında yalnızca bunlardan biri var. Örneğin. C++, statik sınıf düzeyindeki varlıkları bildirmek için hem kullanılabilir ve türlerini bildirmek için: Eğer statik anahtar kelime

1

From MSDN: C# (kesinlikle C özelliğidir) statik bir dosyaya kapsamını sınırlamak olamaz Bir modüle özgüdür. C# 'da, statik yalnızca sınıf düzeyi varlıkları bildirmek için kullanılır.

İlgili konular