Все делегаты в C# наследуются от MulticastDelegate класса (который в свою очередь наследуется от базового класса делегатов Delegate). MulticastDelegate содержит в себе массив объектов Delegate. Это означает то, что любой делегат может содержать в себе ссылки на множество методов. Для того чтобы получить список всех методов в каком-либо объекте делегата, необходимо вызвать метод GetInvocationList(). Перейдем к примерам.
пятница, 18 мая 2012 г.
четверг, 17 мая 2012 г.
.NET C# - Отправка e-mail'а
Отправляем e-mail на примере яндекса. Необходимые классы находятся в System.Net.Mail.
static void SendEmail()
{
MailAddress from = new MailAddress("addressFrom@yandex.ru", "Display Message", Encoding.UTF8);
MailAddress to = new MailAddress("addressTo@yandex.ru");
using (SmtpClient client = new SmtpClient(@"smtp.yandex.ru"))
using(MailMessage message = new MailMessage(from, to))
{
client.Credentials = new NetworkCredential("userName", "userPassword");
message.Body = "This is a test e-mail message sent by an application. ";
message.Body += "Hello wanderer!";
message.BodyEncoding = Encoding.UTF8;
message.Subject = "Important note!";
message.SubjectEncoding = Encoding.UTF8;
// Optional
//message.Attachments.Add(new Attachment("D:\\AwesomePicture.gif"));
client.Send(message);
}
}
среда, 16 мая 2012 г.
.NET C# - Замыкания
Реализация замыканий в C# реализована таким образом, что при захвате внешней переменной (по отношению к анонимному методу) захватывается сама переменная, а не ее значение в момент непосредственного захвата. Пример:
static void Main()
{
int num = 1;
Action action = () => Console.WriteLine(num);
num = 2;
action(); // Outputs: 2
}
Подписаться на:
Комментарии (Atom)