[C#] Книжка Троелсена. про интерфейсы написана хрень
Hexagon hex = new Hexagon;Наверное подразумевается, что в реальной жизни hex будет получаться как параметр функции, причём необязательно его тип поддерживает интерфейс (например, Figure или вообще object).
> причем дальше идет обсуждение того, что здесь может быть InvalidCastExeption. А нельзя было по проще?
да, можно проще, но будет другой смысл.
в одном случае - у тебя явное приведение, в другом - не явное.
да, можно проще, но будет другой смысл.
в одном случае - у тебя явное приведение, в другом - не явное.
да, можно проще, но будет другой смысл.в том то и дело, что об это другом смысле ничего не гворится, а по названию раздела вроде как раз о нем должна идти речь.
Несколькими страницами позже вот такой код:
public class Cars: IEnumerator, IEnumerable
{
....
public IEnumerator GetEnumerator
{
return (IEnumerator)this;
}
}
как такой каст (IEnumerator)this объясните? по ходу дела, автор чего-то не догоняет.
> эта книжка вроде как неоднократно рекомендовалась для изучения C#.
троельсен - хорошая обзорная книжка, поэтому именно ее и рекомендуют для первого прочтения при ознакомление с .net-ом (а не C#, кстати).
накопившиеся вопросы после прочтения троельсена, надо уже задавать (не самой книжке Троельсена а msdn-у, google-у, рихтеру и т.д.
троельсен - хорошая обзорная книжка, поэтому именно ее и рекомендуют для первого прочтения при ознакомление с .net-ом (а не C#, кстати).
накопившиеся вопросы после прочтения троельсена, надо уже задавать (не самой книжке Троельсена а msdn-у, google-у, рихтеру и т.д.
> как такой каст (IEnumerator)this объясните? по ходу дела, автор чего-то не догоняет
нормальный каст, единственное ограничение - что внешний код обязан в любой момент времени иметь только один enumerator на один объект этого типа.
нормальный каст, единственное ограничение - что внешний код обязан в любой момент времени иметь только один enumerator на один объект этого типа.
нормальный кастЧуве имеет в виду, что он, каст, вообще-то нафиг не нужен.
зачем этот какст? скорее всего, ReSharper на такое будет показывать варнинг.
вот вот 

> Чуве имеет в виду, что он, каст, вообще-то нафиг не нужен.
согласен, что не нужен, но это же книжка для новичков, поэтому, вроде бы, и нужно все преобразования делать в коде явно, чтобы было поменьше магии.
согласен, что не нужен, но это же книжка для новичков, поэтому, вроде бы, и нужно все преобразования делать в коде явно, чтобы было поменьше магии.
ты зачем в Троельсена полез?
чтобы понять, что есть в .net-е?
или чтобы поставить себе правильный стиль по написанию .net-кода?
чтобы понять, что есть в .net-е?
или чтобы поставить себе правильный стиль по написанию .net-кода?
дело не в магии, это просто плохой стиль, так не надо программировать, тем более писать в учебнике
ты зачем в Троельсена полез?ну все про нее говорят вот и купил
. Была слабая надежда, что по ней будет быстрее, чем через MSDN, освоить некоторые разделы .NET-а, с которыми сам не работал.> освоить некоторые разделы .NET-а
что помешало купить отдельные конкретные книжки по этим некоторым разделам?
жаба задушила?
что помешало купить отдельные конкретные книжки по этим некоторым разделам?
жаба задушила?
не, экономить на книжках это глупо. Положился на авторитет.
нужно все преобразования делать в коде явно, чтобы
в тот день когда класс перестанет имплементировать интерфейс получить вместо ошибки компиляции ошибку в рантайме
очень умно...Кстати да, об этом я как-то даже и не подумал.
хорошо заметил 

Сорри за оффтоп: Где есть книги по С# в электронном виде? дайте скачать
что то незаходит
есть еще у кого?
есть еще у кого?
да их полно в сетке ищи "c sharp pdf" или "c sharp chm"
Оставить комментарий
6yrop
эта книжка вроде как неоднократно рекомендовалась для изучения C#. По поводу интерфейсов там написана какая-то хрень, стр. 200. Есть классыВ разделе "Получение ссылки на интерфейс"
вот такой код
причем дальше идет обсуждение того, что здесь может быть InvalidCastExeption. А нельзя было по проще?
и эексепшенов бы в рантайме не было бы.