次のコードをテストすると:
struct MyStruct
{
int number;
}
Console.WriteLine("{0}", default(MyStruct))
コンソールの結果は次のようになります[some namespace].MyStruct
default(MyStruct)
問題は、の戻り値を別のものに変更するにはどうすればよいかということです。
次のコードをテストすると:
struct MyStruct
{
int number;
}
Console.WriteLine("{0}", default(MyStruct))
コンソールの結果は次のようになります[some namespace].MyStruct
default(MyStruct)
問題は、の戻り値を別のものに変更するにはどうすればよいかということです。
default
キーワードの動作を変更することはできません。値、参照、および構造体型の動作が事前定義されています。
構造体の場合、値型か参照型かに応じて、構造体の各メンバーをゼロまたは null に初期化して返します。
さらに調べてみると、ToStringメソッドをオーバーライドして印刷結果を変更できるようです。値型のデフォルトのToString実装は次のようになります。
public override string ToString()
{
return this.GetType().ToString();
}
私はそれを上書きして何か他のものを印刷することができます。