クラスの型で変数を作成した場合、初期化する実際の値は何ですか? つまり、int は数値型の値で初期化されます。しかし、技術的な精度に関して言えば、クラスの新しいインスタンスを作成するとどうなるでしょうか?
class a
{
}
class b
{
a InstanceOfA;
InstanceOfA=new (); //which what I initialize the variable?
}
うまくいけば、あなたは私の主張を理解するでしょう、ありがとう
クラス a の新しいインスタンスを作成します。読みやすくするためにクラスの名前を変更した例を次に示します。
class MyClassA {
}
class MyClassB {
MyClassA a = new MyClassA();
}
クラス a に何らかの初期化が必要な場合は、コンストラクターを実装します。
class MyClassA {
public MyClassA() {
// this constructor has no parameters
Initialize();
}
public MyClassA(int theValue) {
// another constructor, but this one takes a value
Initialize(theValue);
}
}
class MyClassB {
MyClassA a = new MyClassA(42);
}
あなたはおそらくこのようなものを求めています:
public class A
{
}
public class B
{
public static void Main(string[] args)
{
// Here you're declaring a variable named "a" of type A - it's uninitialized.
A a;
// Here you're invoking the default constructor of A - it's now initialized.
a = new A();
}
}
クラスのメンバー変数は、そのタイプのデフォルト値で初期化されます。参照型の場合、これはに初期化されることを意味しますnull
。
クラスのインスタンスを作成するには、クラス名を使用するだけです。
InstanceOfA = new a();
私はあなたが求めているものを手に入れたかどうかはわかりませんが、もしそうなら
、クラスを初期化すると、その名前に参照アドレスが割り当てられます。
だからあなたが書くとき
InstanceOfA = new a();
InstanceOfA
タイプ a のオブジェクトのメモリー内 (ヒープ上) のアドレスを取得します。