Quiero comprobar si una variable se inicializa en tiempo de ejecución, programáticamente. Para que las razones de esto sean menos misteriosas, consulte el siguiente código incompleto:C# - comprobando si se inicializa una variable
string s;
if (someCondition) s = someValue;
if (someOtherCondition) s = someOtherValue;
bool sIsUninitialized = /* assign value correctly */;
if (!sIsUninitialized) Console.WriteLine(s) else throw new Exception("Please initialize s.");
Y complete el bit correspondiente.
Una solución hacky es inicializar s con un valor por defecto:
string s = "zanzibar";
Y a continuación, comprobar si ha cambiado:
bool sIsUninitialized = s == "zanzibar";
Sin embargo, lo que si someValue
o someOtherValue
resultan ser "Zanzíbar" ¿también? Entonces tengo un error. ¿Alguna mejor manera?
'string.IsNullOrEmpty (s)' – Shmiddty
Esto en realidad ni siquiera compilará. Las variables deben ser inicializadas. Simplemente inícielo a nulo o cadena. Vacío. – McGarnagle
¿Qué sucede si la variable se inicializa con otro hilo? ¿Se siente cómodo configurando el controlador de memoria para generar una excepción en el acceso de escritura? – HABO