Como han mencionado otros, esto no se puede hacer exactamente dentro de un inicializador. ¿Es aceptable simplemente asignarle un valor nulo a la propiedad en lugar de no configurarlo? Si es así, puede usar el enfoque que otros han señalado. Aquí es una alternativa que logra lo que quiere y sigue utilizando la sintaxis de inicializador:
ServerConnection serverConnection;
if (!windowsAuthentication)
{
serverConection = new ServerConnection()
{
ServerInstance = server,
LoginSecure = windowsAuthentication,
Login = user,
Password = password
};
}
else
{
serverConection = new ServerConnection()
{
ServerInstance = server,
LoginSecure = windowsAuthentication,
};
}
En mi opinión, no debería realmente importa mucho. A menos que trabaje con tipos anónimos, la sintaxis del inicializador es simplemente una característica interesante que puede hacer que su código parezca más ordenado en algunos casos. Yo diría que no salgas de tu camino para usarlo para inicializar todas tus propiedades si sacrifica la legibilidad. No hay nada malo en hacer el código siguiente en su lugar:
ServerConnection serverConnection = new ServerConnection()
{
ServerInstance = server,
LoginSecure = windowsAuthentication,
};
if (!windowsAuthentication)
{
serverConnection.Login = user,
serverConnection.Password = password
}
Hola, ¿por qué el voto a favor? ¿Esta información no es correcta? –
Hay una mejor manera, como @SLaks se menciona a continuación –