Un viejo colega de trabajo solía citar a su padre acerca de las herramientas, "Tienes que ser más inteligente que eso".¿Realmente quisiera devolver la fecha mínima?
En el siguiente código, Resharper me dice: "El valor asignado no se utiliza en ninguna ruta de ejecución" (apuntando a la primera línea). Si acepto su oferta de ayuda, dt no tiene asignado un valor ("hoy").
¿Es este un caso donde "tengo que ser más inteligente que eso" e ignorar su advertencia, o es este un caso donde la herramienta es más inteligente que yo, y simplemente no lo estoy entendiendo?
Mi opinión sobre la situación es que si falla la instrucción if, se devuelve la fecha actual (el valor predeterminado que quiero), pero si acepto las "demandas" de Resharper, se devolverá el valor predeterminado para Datetime, que es la fecha mínima, que supongo que es algo así como 7/4/1776 o 1/1/0000 más o menos.
DateTime dt = DateTime.Now;
if (!(DateTime.TryParse(substr, out dt))) {
using (var dtpDlgForm = new ReturnDate("Please select the Date that the file was created:")) {
if (dtpDlgForm.ShowDialog() == DialogResult.OK) {
dt = dtpDlgForm.ReturnVal;
}
}
}
return dt;
Este es un caso en el que le sugiero que utilice varias devoluciones. Es más obvio si reemplaza la última línea con 'return DateTime.Now' y la línea en el medio usando' return dtpDlgForm.ReturnVal'. –