Все делегаты в 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)