К основному контенту

Сообщения

Сообщения за февраль, 2015

Почему нельзя наследовать структуры в C# ?

Введение - зачем используются структуры? Все мы сильно любим структуры (идея, чуждая Java, не считая примитивных типов). Структуры, когда они не упакованы, зачастую, предоставляют прекрасную возможность обрабатывать динамические данные относительно небольшого размера. Размещение и освобождение типов данных в целом проще, чем размещение и освобождение ссылочных типов. Это связано тем, что структуры размещаются в стеке, либо встроены в содержащиеся типы и освобождаются, при очищении стека либо когда встроенные типы перераспределяются, в то время, как ссылочные типы размещаются в куче и очищаются сборщиком мусора (garbage-collected) Хм... Структуры не хотят наследоваться. Объектно-Ориентированное Программирование дает нам возможность делать много полезных вещей. И основной коцепт - это, конечно же, наследование. Многие из нас, когда либо, пытались наследовать структуру только для того, что бы понять, что C# не позволит нам этого сделать. Для примера рассмотрим код: /

Парсинг HTML с помощью C#

Для парсинга HTML я решил использовать библиотеку htmlagilitypack . Скачать ее можно здесь( http://htmlagilitypack.codeplex.com/ ) После скачивания не забываем подключить dll к нашему проекту. Ниже приведен пример кода использования данной утилиты: htmlCode = WebUtility. HtmlDecode ( htmlCode ) ; HtmlAgilityPack. HtmlDocument result = new HtmlAgilityPack. HtmlDocument ( ) ; result. LoadHtml ( htmlCode ) ;   List < HtmlAgilityPack. HtmlNode > list = result. DocumentNode . Descendants ( ) . Where ( x => ( x. Name == "div" && x. Attributes [ "class" ] ! = null && x. Attributes [ "class" ] . Value . Contains ( "main" ) ) ) . ToList ( ) ;   foreach ( HtmlAgilityPack. HtmlNode node in list ) { rtbTest. Text + = node. InnerText + " \n " ; }