Wie andere erwähnt, kann dies nicht genau innerhalb eines Initialisierers getan werden. Ist es akzeptabel, der Eigenschaft nur den Wert Null zuzuweisen, anstatt sie überhaupt zu setzen? Wenn ja, können Sie den Ansatz verwenden, auf den andere hingewiesen haben. Hier ist eine Alternative, die erreicht, was Sie wollen und verwendet immer noch die initializer Syntax:
ServerConnection serverConnection;
if (!windowsAuthentication)
{
serverConection = new ServerConnection()
{
ServerInstance = server,
LoginSecure = windowsAuthentication,
Login = user,
Password = password
};
}
else
{
serverConection = new ServerConnection()
{
ServerInstance = server,
LoginSecure = windowsAuthentication,
};
}
Meiner Meinung nach, sollte es nicht wirklich viel aus. Wenn Sie nicht mit anonymen Typen arbeiten, ist die Initialisierersyntax nur ein nettes Feature, das Ihren Code in manchen Fällen aufgeräumter aussehen lässt. Ich würde sagen, gehen Sie nicht aus dem Weg, um es zu verwenden, um alle Ihre Eigenschaften zu initialisieren, wenn es die Lesbarkeit beeinträchtigt. Es ist nichts falsch mit, anstatt den folgenden Code ausführen:
ServerConnection serverConnection = new ServerConnection()
{
ServerInstance = server,
LoginSecure = windowsAuthentication,
};
if (!windowsAuthentication)
{
serverConnection.Login = user,
serverConnection.Password = password
}
Hallo, warum der Downvote? Sind diese Informationen nicht korrekt? –
Es gibt einen besseren Weg, wie @SLaks unten erwähnt –