null の場合は false を返し、null でない場合は true を返す out パラメータを使用して TryGet パターンに従う次の関数があります。
public bool TryGetFileFormat(string extension, [CanBeNull] out IFileFormat fileFormatter)
{
fileFormatter = Plugins?.FirstOrDefault(plugin => plugin?.FileExtension != null && plugin.FileExtension.Equals(extension));
return (fileFormatter != null);
}
次に、次のコードで関数を呼び出します。
IFileFormat fileFormatPlugin;
if (_pluginLoader.TryGetFileFormat(extension, out fileFormatPlugin))
{
fileFormatPlugin.DoStuff();
Resharper は、fileFormatPlugin が null である可能性があることを警告します。関数が false を返す場合にのみ null になることを resharper に伝えるにはどうすればよいですか?
編集これをContractAnnotationで何とか処理できると思いますが、構文がわかりません。