別のクラスA
のタイプB
のオブジェクトを初期化したいのですが、どうしてnullになるのですか? ref
とout
修飾子を使用せずに行うことはできますか?同じ方法で(refを使わずに)オブジェクトを初期化できないのはなぜですか?
class A
{
public void Initialize(B value)
{
if (value == null)
{
value = new B();
}
}
}
class B
{
}
class Program
{
static void Main(string[] args)
{
A a = new A();
B b = null;
a.Initialize(b);
}
}
[UPD。]私はそれは、クラスのインスタンスだのためb
変数はref
で渡すことができると思っていました。それが好き
class A
{
public B Initialize(B value)
{
if (value == null)
{
value = new B();
}
return value;
}
}
を、コール:
なぜ*他に何かが期待されますか? http://pobox.com/~skeet/csharp/parameters.htmlを参照してください。 –