静的に正しいことがわかっているケースを処理するために、リシャーパー コード インスペクション/アノテーションを拡張することは可能ですか?
たとえば、次のような特定の条件を満たすことがわかっている効用関数があります。
static public bool IsValid(double? d)
{
return d != null && IsValid(d.Value);
}
static public bool IsValid(double d)
{
return !Double.IsNaN(d) && !Double.IsInfinity(d);
}
したがって、これによりnullableに値が含まれることが保証され、「Possible System.InvalidOperationException」インスペクションが次のようなものに対して起動しないようにしたいと思います。
if (Utils.IsValid(nullableValue))
{
DoSomethingWith(nullableValue.Value);
}
確かにインスペクションなどを抑制することはできますが、静的型付けを拡張して、これが実際に値が null 不可であることを保証することを示すことは可能ですか?
(関連するが過度に一般的な質問は、それを処理する可能性のある resharper の代わりに別の静的型付けチェックを使用する必要があると思いますが、過度に広範になることを恐れません!)