Resharper建议将重载方法设为私有

时间:2013-12-10 10:36:38

标签: c# resharper

我有类似下面的方法:

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建议这个看似不正确的重构?

1 个答案:

答案 0 :(得分:3)

ReSharper 非常聪明,可以确定特定类成员的实际使用位置。如果它不在其所在的类型之外使用(甚至在派生类型中),它将提供将成员标记为private。如果该成员也在派生类中使用,则会将其标记为protected

Source