C# - не удается найти использование метода при наследовании и использовании через интерфейс, реализованный подклассом
Я использую VisualStudio 2008 и 2010, оба с ReSharper, и когда я пытаюсь найти использование данного метода, я не получаю результатов, несмотря на то, что метод наследуется и затем вызывается через интерфейс. В чем дело? Это ошибка VS/ReSharper? Смотрите пример ниже:
using System;
namespace UsageNotFound
{
interface MyInterface
{
void Hello();
}
class SuperClass
{
public void Hello() //NOTE: VS 2008/2010 (with resharper)
seems unable to find usages on this!!!
{
Console.WriteLine("Hi!");
}
}
class SubClass : SuperClass, MyInterface
{
public static MyInterface GetInstance()
{
return new SubClass();
}
}
class Program
{
static void Main(string[] args)
{
SubClass.GetInstance().Hello();
}
}
}
Спасибо, Фабрицио
3 ответа
Это известная проблема: http://youtrack.jetbrains.net/issue/RSRP-46273 без текущей целевой версии исправления
Наверное потому что твой SuperClass
не реализует интерфейс. Это может вызвать проблемы для ReSharper. Пытаться:
class SuperClass : MyInterface
{
public void Hello()
{
Console.WriteLine("Hi!");
}
}
Это все связано с порядком, в котором SubClass
наследует Hello()
метод из SuperClass
а также MyInterface
,
Я удивлен, что вы не получите предупреждение о том, что SubClass.Hello()
(от реализации определения интерфейса) будет скрывать SuperClass.Hello()
,