2016-04-10 16 views
0

c++extern int anything;の内容はc#になりますか?私は10以上のクラスを持っていると私は各クラスのデフォルトに値を変更せずに変数を使用したい。私はこのクラスのいずれかにこの変数を置く場合、他の私は変数の値を変更するが、他のクラスの変数の値はデフォルトに設定されていますが、私は外部の変数またはグローバル変数がCのような各クラスで変更された値を持っている必要がありますextern int anything;c#C++のexternと同じC#

class Globals { 

    public static int AnythingProperty { get; set; } 

    public static int AnythingField; 

} 

Globalsクラスのみ(名前が示す)静的メンバが含まれている場合、あなたは変更することができます:あなたは、クラスでのpublic staticフィールドまたはプロパティを作成する必要がありますC#でグローバル変数を作成するには

+0

あなたはC#でそれを必要としません。 –

+0

DllImportが機能するようにするには、C++実装を直接使用して、これをチェックしてください - http://stackoverflow.com/questions/5110706/how-does-extern-work-in-c –

+0

このような機能はありませんC#のexternのように、C#は完全にオブジェクト指向であり、グローバル宣言はできません。唯一の方法は、すべての10クラスの親クラスを作成し、それに静的変数を宣言することです。親からすべての10のクラスを継承する – Ram

答えて

1

クラス宣言はstatic class Globalsです。

他のクラスの中から、あなたは、プロパティまたはフィールドにアクセスすることができます:あなたのコード内のグローバル変数は、カップリングを増加し、コードを理解するために微妙なエラーとハードにつながることができます持つ

class SomeClass { 

    public void SomeMethod() { 
    Globals.AnythingProperty += 1; 
    Globals.AnythingField = 2; 
    } 

} 

を。ほとんどの場合、グローバル変数を使用する方法がありますが、少なくとも現時点ではどのように使用しているか知っています。

関連する問題