Resharper:可能为标记为notnull属性的实体赋值

kat*_*tit 32 .net c# resharper

我得到这个警告response.GetResponseStream() 我该怎么办?

// Get response  
using (var response = request.GetResponse() as HttpWebResponse)
{
    // Get the response stream  
    if (response != null)
    {
        var reader = new StreamReader(response.GetResponseStream());
        var responseString = reader.ReadToEnd();
        return responseString;
    }
}
Run Code Online (Sandbox Code Playgroud)

为清楚起见,基于一些错误解释的答案:

此行不是警告发生的地方:

using (var response = request.GetResponse() as HttpWebResponse)
Run Code Online (Sandbox Code Playgroud)

此行警告发生的地方:

var reader = new StreamReader(response.GetResponseStream());
Run Code Online (Sandbox Code Playgroud)

Mis*_*ble 33

var reader = new StreamReader(response.GetResponseStream());
Run Code Online (Sandbox Code Playgroud)

我怀疑StreamReader构造函数的参数有一个notnull属性.请尝试以下方法:

var stream = response.GetResponseStream();
if (stream == null)
  // throw an exception
var reader = new StreamReader(stream);
Run Code Online (Sandbox Code Playgroud)


Dar*_*rov 6

尝试缩短代码并将一次性资源包装在using语句中:

using (var response = request.GetResponse())
using (var reader = new StreamReader(response.GetResponseStream()))
{
    return reader.ReadToEnd();
}
Run Code Online (Sandbox Code Playgroud)

甚至更进一步:

using (var client = new WebClient())
{
    return client.DownloadString("http://foo.bar.com/")
}
Run Code Online (Sandbox Code Playgroud)

  • 我不知道`C#`多但是`使用(var reader = new StreamReader(response.GetResponseStream()))`没有获得相同的resharper警告? (2认同)