[C#] Книжка Троелсена. про интерфейсы написана хрень
Hexagon hex = new Hexagon;Наверное подразумевается, что в реальной жизни hex будет получаться как параметр функции, причём необязательно его тип поддерживает интерфейс (например, Figure или вообще object).
да, можно проще, но будет другой смысл.
в одном случае - у тебя явное приведение, в другом - не явное.
да, можно проще, но будет другой смысл.в том то и дело, что об это другом смысле ничего не гворится, а по названию раздела вроде как раз о нем должна идти речь.
Несколькими страницами позже вот такой код:
public class Cars: IEnumerator, IEnumerable
{
....
public IEnumerator GetEnumerator
{
return (IEnumerator)this;
}
}
как такой каст (IEnumerator)this объясните? по ходу дела, автор чего-то не догоняет.
троельсен - хорошая обзорная книжка, поэтому именно ее и рекомендуют для первого прочтения при ознакомление с .net-ом (а не C#, кстати).
накопившиеся вопросы после прочтения троельсена, надо уже задавать (не самой книжке Троельсена а msdn-у, google-у, рихтеру и т.д.
нормальный каст, единственное ограничение - что внешний код обязан в любой момент времени иметь только один enumerator на один объект этого типа.
нормальный кастЧуве имеет в виду, что он, каст, вообще-то нафиг не нужен.
зачем этот какст? скорее всего, ReSharper на такое будет показывать варнинг.
![](/images/graemlins/smile.gif)
согласен, что не нужен, но это же книжка для новичков, поэтому, вроде бы, и нужно все преобразования делать в коде явно, чтобы было поменьше магии.
чтобы понять, что есть в .net-е?
или чтобы поставить себе правильный стиль по написанию .net-кода?
дело не в магии, это просто плохой стиль, так не надо программировать, тем более писать в учебнике
ты зачем в Троельсена полез?ну все про нее говорят вот и купил
![](/images/graemlins/smile.gif)
что помешало купить отдельные конкретные книжки по этим некоторым разделам?
жаба задушила?
не, экономить на книжках это глупо. Положился на авторитет.
нужно все преобразования делать в коде явно, чтобы
в тот день когда класс перестанет имплементировать интерфейс получить вместо ошибки компиляции ошибку в рантайме
![](/images/graemlins/crazy.gif)
Кстати да, об этом я как-то даже и не подумал.
![](/images/graemlins/smile.gif)
Сорри за оффтоп: Где есть книги по С# в электронном виде? дайте скачать
есть еще у кого?
да их полно в сетке ищи "c sharp pdf" или "c sharp chm"
Оставить комментарий
6yrop
эта книжка вроде как неоднократно рекомендовалась для изучения C#. По поводу интерфейсов там написана какая-то хрень, стр. 200. Есть классыВ разделе "Получение ссылки на интерфейс"
вот такой код
причем дальше идет обсуждение того, что здесь может быть InvalidCastExeption. А нельзя было по проще?
и эексепшенов бы в рантайме не было бы.