Estoy actualizando un sistema y estoy pasando por otro código de desarrollador (ASP.NET en C#).¿Es este código redundante?
me encontré con esto:
private ReferralSearchFilterResults ReferralsMatched
{
get
{
if (Session[SESSION_REFERRAL_SEARCHFILTERRESULTS] == null || Session[SESSION_REFERRAL_SEARCHFILTERRESULTS].GetType() != typeof(ReferralSearchFilterResults))
return null;
else
return (ReferralSearchFilterResults)Session[SESSION_REFERRAL_SEARCHFILTERRESULTS];
}
set
{
if (value == null)
{
Session[SESSION_REFERRAL_SEARCHFILTERRESULTS] = value;
}
else if (value.GetType() == typeof(ReferralSearchFilterResults))
{
Session[SESSION_REFERRAL_SEARCHFILTERRESULTS] = value;
}
}
}
está comprobando el tipo en el colocador innecesario? Seguramente, si configuro la propiedad a algo que no sea un objeto ReferralSearchFilterResults
, ¿el código ni siquiera se compilaría? Me estoy perdiendo algo o estoy derecho a que esto puede lograrse sólo mediante el uso:
set
{
Session[SESSION_REFERRAL_SEARCHFILTERRESULTS] = value;
}
:) Me preocuparía más por qué el valor de una propiedad se almacena en una variable de sesión. A menos que me falta algo aquí. –
Esto es una mala práctica IMO. A nadie le gustan las propiedades inteligentes que deciden por sí mismas que no deben hacer lo que les pediste que hagan, y ni siquiera te informan sobre eso. – Groo