classinstance
作成/初期化されているかどうか、または作成されているかどうかをどのように確認しますnull
か?
private MyClass myclass;
if(!check class has been initialised) //<- What would that check be?
myclass = new MyClass();
前もって感謝します
nullかどうかを確認してください
if (myclass == null)
あなたのコメントで述べたように、
if (myclass.Equals(null))
myclassがnullの場合、次のように変換されるため、機能しません。
if (null.Equals(null))
これはにつながりNullReferenceException
ます。
ちなみに、クラススコープで宣言されたオブジェクトは、コンパイラによって自動的にnullに初期化されるため、次のようになります。
private MyClass myclass;
と同じです
private MyClass myclass = null;
メソッドで宣言されたオブジェクトには、(その初期値がnullであっても)何らかの初期値が強制的に割り当てられます。
if (myclass == null)
myclass = new MyClass();
クラスを単一のインスタンスに制限する場合は、シングルトンデザインパターンを参照してください:http://msdn.microsoft.com/en-us/library/ff650316.aspx
チェックを回避するためにこの構造を使用できます
public class SomeClass
{
private MyClass _myClass;
public MyClass MyClass
{
get { return _myClass ?? (_myClass = new MyClass()); }
set { _myClass = value; }
}
}
public class SomeClass
{
private readonly MyClass _myClass = new MyClass();
public MyClass MyClass
{
get { return _myClass; }
}
}