1

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で何とか処理できると思いますが、構文がわかりません。

4

1 に答える 1