Ich habe einige Bedingungen in meinem Konstruktor. Wenn der Parameter diese Bedingungen nicht erfüllt, möchte ich stattdessen einen anderen überladenen Konstruktor verwenden. Ist das möglich?Kann man innerhalb eines Konstruktors zu einem anderen Konstruktor wechseln?
Beispielcode:
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.
}
Die Linie:
this = Header(defaultingFileType);
ist mein unmöglicher Versuch zu einem anderen Konstruktor zu ändern. Wie würde ich an dieser Stelle zu einem anderen Konstruktor wechseln? Wenn ich nicht zu einem anderen Konstruktor wechseln kann, muss ich den Code des anderen Konstruktors an dieser Stelle in diesen Konstruktor kopieren/einfügen. Der Konstruktor Ich mag würde stattdessen an dieser Stelle verwenden ist:
public Header(Utilities.FileType givenFileType){}
nein. Nächste Frage bitte. –
Ist das eine Klasse oder Struktur? Structs können dies zuweisen, aber Klassen nicht. –
@mikez Dies ist eine Klasse. – Sparky