Есть ли возможность автоматически передать this
как параметр функции? Например, вы можете использовать [CallerMemberName]
для автоматического передачи имени string
. Я ищу точный вариант с this
.
Пример:
void PassMeThis([AutomaticThisParam] object source);
и использование:
public class SomeClass{
void SomeMethod(){
PassMeThis(); // instead of PassMeThis(this)
}
}
Всего 2 ответа
Да, конечно. Это называется методом расширения.
Создание статического класса Public static class MethodExtensions
Добавьте к нему статический метод, как этот public static PassMeThis(this SomeClass model) { // }
Вызовите метод, подобный этому (ссылаясь на ваш пример кода): this.PassMeThis()
И он автоматически заполняется. Надеюсь, именно то, что вы искали
Если PassMeThis
находится в том же классе (или предке), как в вашем примере, нет смысла, это тоже возможно.
Если он находится в другом классе , нет возможности автоматически получить ссылку на вызывающий объект: существует ли способ получить ссылку на вызывающий объект в c #?