我有类似下面的方法:
public string Method(string s)
{
Console.WriteLine("Called Method(string s)");
return s;
}
public string Method(object o)
{
Console.WriteLine("Called Method(object o)");
return Method(o == null ? null : o.ToString());
}
Resharper在第一种方法上说
方法'方法'可以设为私有
我认为这是不正确的,因为如果我打电话:
Method(new SomeClass())
然后输出
被叫方法(对象o)
被叫方法(字符串s)
如果我打电话
Method("some string")
输出
被叫方法(字符串s)
那么为什么Resharper建议这个看似不正确的重构?
答案 0 :(得分:3)
ReSharper 非常聪明,可以确定特定类成员的实际使用位置。如果它不在其所在的类型之外使用(甚至在派生类型中),它将提供将成员标记为private
。如果该成员也在派生类中使用,则会将其标记为protected
。