Можете ли вы автоматически передать «это» в качестве параметра? - PullRequest
0 голосов
/ 07 ноября 2018

Есть ли возможность автоматически передавать this в качестве параметра функции? Например, вы можете использовать [CallerMemberName] для автоматической передачи string имени. Я ищу точный вариант с this.

Пример:

void PassMeThis([AutomaticThisParam] object source);

и использование:

public class SomeClass{    
    void SomeMethod(){
        PassMeThis(); // instead of PassMeThis(this)
    }
}

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Да, абсолютно. Это называется методом расширения.

  1. Создать статический класс Public static class MethodExtensions

  2. Добавьте статический метод к этому, как это public static PassMeThis(this SomeClass model) { // }

  3. Вызовите метод следующим образом (ссылаясь на пример кода): this.PassMeThis()

И он заполняется автоматически. Я надеюсь, это то, что вы искали

0 голосов
/ 07 ноября 2018

Если PassMeThis равно в том же классе (или предке), как в вашем примере, в этом нет никакого смысла, это также доступно там.

Если это в другом классе , существует нет способа автоматического получения ссылки на вызывающий объект: Есть ли способ получить ссылку на вызывающий объект в c #?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...