Использование “этого” ключевого слова в формальных параметрах для статических методов в C#

Это фрагмент кода для отправки почты любому, кто использует SMTP.

Ниже приведен код, настроенный для gmail SMT P. Если у вас есть другие, его можно настроить.

import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText

msg = MIMEMultipart()
msg['From'] = 'me@gmail.com'
msg['To'] = 'you@gmail.com'
msg['Subject'] = 'Enter subjecy of msg here'
message = 'here is the email'
msg.attach(MIMEText(message))

# GMAIL_SMTP_HOST = 'smtp.gmail.com'
# GMAIL_SMTP_PORT = '587'
mailserver = smtplib.SMTP('smtp.gmail.com',587)
# secure our email with tls encryption
mailserver.starttls()
mailserver.sendmail('me@gmail.com','you@gmail.com',msg.as_string())
mailserver.quit()
268
задан kpozin 10 May 2009 в 18:05
поделиться

3 ответа

Это метод расширения . См. Здесь объяснение .

Методы расширения позволяют разработчикам добавлять новые методы в общий доступ контракт существующего типа CLR без необходимости его подкласса или перекомпилировать исходный тип. Методы расширения помогают смешать гибкость поддержки "утиного ввода", популярная в динамических языках сегодня с производительностью и проверкой во время компиляции строго типизированные языки.

Методы расширения позволяют использовать множество полезных сценариев и помогают создавать возможна действительно мощная структура запросов LINQ ...

это означает, что вы можете вызывать

MyClass myClass = new MyClass();
int i = myClass.Foo();

, а не

MyClass myClass = new MyClass();
int i = Foo(myClass);

Это позволяет создавать плавные интерфейсы , как указано ниже.

256
ответ дан 23 November 2019 в 02:22
поделиться

Это методы расширения . Добро пожаловать в совершенно новый свободный мир . :)

8
ответ дан 23 November 2019 в 02:22
поделиться

Я только что на днях узнал об этом: ключевое слово this определяет, что метод является расширением класса, который его выполняет. Итак, для вашего примера MyClass будет иметь новый метод расширения под названием Foo (который не принимает никаких параметров и возвращает int; его можно использовать, как и любой другой общедоступный метод).

4
ответ дан 23 November 2019 в 02:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: