Поддерживает ли Visual Studio 2010 что-то вроде Eclipse «Создание методов делегата»? - PullRequest
3 голосов
/ 21 апреля 2010

Eclipse позволяет нам определить класс как:

interface MyInterface {
    void methodA();
    int methodB();
}

class A : MyInterface {
    MyInterface myInterface;
}

и затем с помощью этого «Создать методы делегата» он реализует все необходимые методы для интерфейса, перенаправляя их логику на методы myInterface:

class A : MyInterface {
    MyInterface myInterface;

    public void methodA() {
        myInterface.methodA();
    }

    public int methodB() {
        return myInterface.methodB();
    }
}

Можно ли сделать то же самое с VS2010? А с R #?

Спасибо

1 Ответ

5 голосов
/ 21 апреля 2010

С Resharper вы можете сделать это.

http://www.jetbrains.com/resharper/features/code_generation.html

Создание делегирующих членов

Делегирование членов предоставляет средство для инкапсуляции некоторого поведения или публикации методов поля класса через собственный интерфейс класса. Укажите поля и их методы, и ReSharper сгенерирует методы обтекания в текущем классе.

Это отличная функция, которую мы используем постоянно. Есть несколько способов получить к нему доступ, но я нажимаю ALT-INS, который вызывает контекстное меню Generate. Несколько пунктов внизу списка Delegating members. Затем вы получаете дерево, из которого вы выбираете поля (объекты), которым хотите делегировать, и какие делегирующие свойства / методы вы хотите создать. Очень быстро и просто и отлично работает.

...