インスタンスと静的メンバーの主な違いは実際の例で説明できますか?C#で静的メンバーを使用する理由
答えて
あなたは、静的なクラスに対してインスタンスを作成することはありません。型名を使って呼び出すだけです。
たとえば、
public static StaticClass {
public static void StaticMethod(){}
}
静的メソッドを呼び出すには、ちょうどこの、StaticClass.StaticMethod()
を入力します。
クラスのオブジェクトを作成するときは、そのクラスのインスタンスの作成と呼ばれます。 インスタンスはコンクリートクラスのみ作成できます)。例えば
public class ConcreteClass {
public void RandomMethod(){}
}
RandomMethod
を呼び出すには、オブジェクトを作成することによってConcreteClass
のインスタンスを作成する必要があります。
ConcreteClass abc = new ConcreteClass();
abc.RandomMethod();
はまた、静的クラスで、すべてのそれのメンバーが静的である必要がありますし、あなたがクラスをインスタンス化されないため、あなたは直接のメンバーを呼び出すことができるはず、ので、これは理にかなって、ことに注意してください。これは、上記の静的クラスの例では、メソッドも静的な理由です。
こちらがお役に立てば幸いです。
決して一度も決して静的クラスについて言及することはありません。 – Servy
静的メンバーは、インスタンスメソッドが呼び出されたオブジェクトへのインスタンス参照である暗黙の「this」パラメータを使用せずに実行されます。
var number = Int32.TryParse("1234"); // Static member of Int32.
//Is not called using an object, it doesnt not need the 'this'
//because it doesn't change the data of the class.
string stringy = "asdfasdf";
char [] characters = stringy.ToCharArray();
//requires the strings data so it needs the instance stringy.
クラスデータが必要な場合は、インスタンスが必要です。そうでない場合は、メソッドを静的にして、オブジェクトなしでいつでも呼び出すことができます。
編集:最初はそれを静的メソッドとして読みます。静的データメンバーは完全に異なります。プログラムが実行されると、その型のデータオブジェクトが1つだけ割り当てられ、クラスのインスタンスではなくクラス名を介してアクセスできます。
public class Classy
{
public static int number= 4;
public static void func() { }
// Other non-static fields and properties...
}
//mainline..
//
int n = Classy.number;
Classy.func(); // etc..
- 1. ViewModelLocatorメンバーが静的でない理由
- 2. C++の静的メンバー配列
- 3. C++:静的メンバー変数
- 4. 非静的メンバーの静的メンバー関数
- 5. 非静的メンバー関数を使用したC++ソートベクトル
- 6. 関数を使用してC++で静的メンバーを初期化する方法
- 7. 静的ライブラリの静的メンバー
- 8. C++ freeRTOSタスク、非静的メンバー関数の無効な使用
- 9. 非静的メンバー関数の無効な使用C++
- 10. 静的メンバーを使用して静的マップを初期化する
- 11. C#でプライベートクラスを使用する理由
- 12. 静的メンバー
- 13. Eclipseのコンテンツアシストが静的インポートを使用しない理由
- 14. 非静的メンバー関数の無効な使用のためにコンパイラが回避できない理由
- 15. このように「静的」クラスを使用する理由は何ですか?
- 16. c#静的メンバーまたは静的コンストラクタとシングルトンの違い
- 17. C++非静的メンバー関数のバインド
- 18. メンバー静的コールバック関数のextern "C"
- 19. クラスの静的メンバーを使用してオブジェクトを作成する
- 20. Androidアプリケーションで静的メンバーを使用していますか?
- 21. 静的メンバー関数を使用する場合
- 22. ブーストラムダを使用して静的メンバーにアクセスする
- 23. INotifyPropertyChangedを使用する静的プロパティ。 C#
- 24. Boost.Bind非静的メンバー
- 25. typescript、アクセス静的メンバー
- 26. 静的メンバー関数
- 27. 説明静的メンバー
- 28. 静的メンバーのガベージコレクション
- 29. C++リファレンスを使用する理由
- 30. 静的ライブラリを管理するC++ラッパー
私は良い本やオンラインチュートリアルを提案しています(たくさんのGoogleから利用可能です)。 – AlG
"シングルトン"を参照してください。これは静的メンバーを使用する例です。 –
静的メンバーはクラスに属しています。インスタンスメンバはインスタンスに属します。 (単なるシングルトンよりも静的メンバーのほうが有用なインスタンスがたくさんあります) –