public class BloodPressure {
public Int16? Diastolic { get; set; }
private Boolean IsValid {
get {
var valid = false;
if (this.Diastolic.HasValue && this.Systolic.HasValue) {
if ((this.Diastolic.Value >= 0) && (this.Systolic.Value >= 0)) {
valid = true;
}
}
return (valid);
}
}
public Int16? Systolic { get; set; }
public override String ToString() {
var result = "";
if (this.IsValid) {
result = this.Systolic.Value.ToString("0") + "/" + this.Diastolic.Value.ToString("0");
}
else {
result = null;
}
return (result);
}
}
Это строка, на которую ReSharper жалуется:
result = this.Systolic.Value.ToString("0") + "/" + this.Diastolic.Value.ToString("0");
Поскольку я заранее вызываю логику проверки, я могу быть уверен, что и систолическое, и диастолическое будут иметь значения, которые я могу использовать. ReSharper не видит этого или жалуется на что-то еще?
Интересно, что с этим разделом проблем нет:
if ((this.Diastolic.Value >= 0) && (this.Systolic.Value >= 0)) {
valid = true;
}