私のコンストラクタにはいくつかの条件があります。パラメータがそれらの条件に合格しない場合は、代わりに別のオーバーロードされたコンストラクタを使用したいと思います。これは可能ですか?コンストラクタ内の別のコンストラクタに変更することはできますか?
例コード:
public Header(byte[] givenData, Utilities.FileType defaultingFileType)
{
int index = -1;
if (givenData != null)
{
// possibly alter int index here
}
if (index != -1)
{
// found match, parse givenData
}
else
{
// no suitable match found, default to given file type
this = Header(defaultingFileType);
}
// etc.
}
ライン:
this = Header(defaultingFileType);
は別のコンストラクタに変更するには、私のことは不可能試みです。この時点で、私はどのようにして別のコンストラクタに変更できますか?別のコンストラクタに変更できない場合、その時点で他のコンストラクタのコードをこのコンストラクタにコピー/ペーストする必要があります。その時点で代わりに使用したいコンストラクタは次のとおりです。
public Header(Utilities.FileType givenFileType){}
いいえ。次の質問ください。 –
これはクラスか構造体ですか?構造体はこれに割り当てることができますが、クラスではできません。 –
@mikezこれはクラスです。 – Sparky