Czy sprawdzić stan naprawdę zbędny w poniższym przykładzie ?:Redundant sprawdzić stan przed przypisania sugestią dla C# w Resharper 5
public class MyClass {
public bool MyProperty { get; set; }
public void DoSomething(bool newValue) {
// R# says: redundant condition check before assignment
// on the following line:
if (MyProperty != newValue) { // <======
MyProperty = newValue;
}
}
}
wiem, że tak czy inaczej MyProperty
zostanie ustawiona na newValue
, ale jest sprawdzenie zbędny?
W programie Adobe Flex: getter is called implicitly by the VM jest uruchamiany za każdym razem, gdy wywoływany jest wywoływacz, mimo że nie jest wykonywane jednoznaczne sprawdzanie. Końcowym rezultatem jest to, że sprawdzenie przed przypisaniem daje dwie kontrole, jedną wyraźną i jedną domniemaną, co skutkuje kontrolą redundantną. Czy coś podobnego zdarza się w C#?
W moim przypadku jest to wokół Windows Forms 'własności TopMost' który robi mieć skutki uboczne. Bardzo dobre uwagi na temat niezmiennych wartości. –