В Visual Studio с расширением или без него существует ли способ автоматически сортировать частные методы внутри класса на основе порядка их использования (их расположение в стеке вызовов)?
Например, рассмотрим следующий класс:
public class MyClass
{
public void MyMethod()
{
TestC();
}
private void TestA()
{
TestB();
}
private void TestB()
{
Console.WriteLine("Hello");
}
private void TestC()
{
TestA();
}
}
Открытый метод в этом классе MyMethod
, он вызывает TestC
, который вызывает TestA
, который вызывает TestB
. Я хотел бы (автоматически) упорядочить эти методы таким порядком, чтобы класс выглядел следующим образом:
public class MyClass
{
public void MyMethod()
{
TestC();
}
private void TestC()
{
TestA();
}
private void TestA()
{
TestB();
}
private void TestB()
{
Console.WriteLine("Hello");
}
}
Мне нужно иметь возможность выбирать класс, запрашивать такую сортировку метода и автоматически сортировать методы. Я не хочу вручную сортировать эти методы.
Я понимаю, что есть некоторые нюансы. Например, может существовать частный метод, который вызывается из двух методов, которые находятся на двух разных уровнях в стеке вызовов. Думаю, в этом случае имеет смысл рассмотреть наименьшее (стек вызовов) от общедоступного метода.
UPDATE:
Эта идея сортировки методов таким образом происходит из книги "Чистый код" Роберта К. Мартина. В главе 3 определено правило Stepdown, в котором говорится о наличии функций более высокого уровня перед функциями низкого уровня.
Выполняя быстрый поиск правила отключения для google, я нашел плагин netbeans по адресу: http://plugins.netbeans.org/plugin/58863/stepdownruleplugin
Я бы предположил, что он делает что-то похожее на то, что мне нужно, но для netbeans.