我不喜欢有多个返回行的方法。所以我创建了一个带有字符串结果的返回值 - 并且在每种情况下我都写 result = some...
但是当我编写“try-catch”机制时,我必须设置公共字符串结果。因为,如果我在 try 中返回结果,编译器将启动错误,并表示并非所有代码都有返回值。如果我写结果=字符串.空resharper 说,到该方法的末尾,它是不可访问的代码。所以,这是一个例子,这是我的问题;
“在方法中写“return”的完美方式是什么?”
public static string PingThatAddress(string hostAddress)
{
try
{
Ping ping = new Ping();
PingReply pingreply = ping.Send(hostAddress);
string result;
if (pingreply != null && pingreply.Status.ToString() != "TimedOut")
{
result = "Address: " + pingreply.Address + "\r"
+ "Roundtrip Time: " + pingreply.RoundtripTime + "\r"
+ "TTL (Time To Live): " + pingreply.Options.Ttl + "\r"
+ "Buffer Size: " + pingreply.Buffer.Length + "\r";
}
else
{
result = string.Empty;
}
return result;
}
catch (Exception pingError)
{
Debug.Fail(pingError.Message + " " + pingError);
}
//compiler error: THERE IS NO RETURN VALUE here?
}
你可以这样做:
public static string PingThatAddress(string hostAddress)
{
string result = string.Empty;
try
{
Ping ping = new Ping();
PingReply pingreply = ping.Send(hostAddress);
if (pingreply != null && pingreply.Status.ToString() != "TimedOut")
{
result = "Address: " + pingreply.Address + "\r"
+ "Roundtrip Time: " + pingreply.RoundtripTime + "\r"
+ "TTL (Time To Live): " + pingreply.Options.Ttl + "\r"
+ "Buffer Size: " + pingreply.Buffer.Length + "\r";
}
}
catch (Exception pingError)
{
Debug.Fail(pingError.Message + " " + pingError);
}
return result;
}
然后只需确保result
设置为在异常情况下有意义的值。
如果您想坚持 Resharper 警告您的内容,请按以下方式操作:
public static string PingThatAddress(string hostAddress)
{
try
{
Ping ping = new Ping();
PingReply pingreply = ping.Send(hostAddress);
string result = string.Empty;
if (pingreply != null && pingreply.Status.ToString() != "TimedOut")
{
result = "Address: " + pingreply.Address + "\r"
+ "Roundtrip Time: " + pingreply.RoundtripTime + "\r"
+ "TTL (Time To Live): " + pingreply.Options.Ttl + "\r"
+ "Buffer Size: " + pingreply.Buffer.Length + "\r";
}
return result;
}
catch (Exception pingError)
{
Debug.Fail(pingError.Message + " " + pingError);
}
return string.Empty;
}
在这里你不能两全其美:你的人为标准是不要有多个return
语句可能是导致您在使用 Resharper 时遇到问题的原因。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)