Шаблоны в С#
От: Hasmik Армения  
Дата: 09.05.06 15:20
Оценка: :))) :))) :)))
Универсальный класс – это:
шаблон, используемый для построения конкретных классов
класс, способный решать любые задачи пользователя
класс, методы которого могут иметь родовые параметры
класс с родовыми параметрами
класс, функциональные возможности которого превосходят возможности его потомков

Отметьте истинные высказывания:
наследник универсального класса всегда универсален
для универсального класса не может указываться атрибут сериализации
родовые параметры универсального класса могут задаваться как на уровне класса, так и на уровне методов
класс без родовых параметров может быть наследником универсального интерфейса
делегаты могут иметь родовые параметры

Какие фрагменты кода корректны?
class A<B, C> { B b; C c;}
class A1<A1, B> { A1 a1; B b;}
class A2<B> : IC<C> { }
class A3<B> where B : A<int, int> { }

10.05.06 11:35: Перенесено из '.NET'
Re: Шаблоны в С#
От: VladD2 Российская Империя www.nemerle.org
Дата: 09.05.06 17:05
Оценка:
Здравствуйте, Hasmik, Вы писали:

...

Это что очередной экзаменациоонный вопрос?

Откуда это чудо?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Шаблоны в С#
От: Воронков Василий Россия  
Дата: 09.05.06 17:25
Оценка:
Здравствуйте, Hasmik, Вы писали:

А оригинального текста на англ. языке нет? Все-таки не очень ясно какое отношение "родовые параметры" имеют к программированию.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Шаблоны в С#
От: Аноним  
Дата: 09.05.06 17:26
Оценка:
Здравствуйте, Hasmik, Вы писали:

Незачет. Придете на пересдачу на следующей неделе.
Re[2]: Шаблоны в С#
От: Oyster Украина https://github.com/devoyster
Дата: 09.05.06 17:31
Оценка: :)
Здравствуйте, Воронков Василий, Вы писали:

ВВ>А оригинального текста на англ. языке нет? Все-таки не очень ясно какое отношение "родовые параметры" имеют к программированию.


Готов поспорить, что это generic parameters

Кстати, такой же перевод этого термина был использован и в переводе второго издания Бертрана Мейера, который Eiffel так что или переводчики те же, или заворачивали траву в страницы из той книги

PS: Мне лично этот термин не нравится, но адекватный перевод как-то сразу на ум не приходит...
Re[3]: Шаблоны в С#
От: Воронков Василий Россия  
Дата: 09.05.06 17:38
Оценка:
Здравствуйте, Oyster, Вы писали:

O>Здравствуйте, Воронков Василий, Вы писали:


ВВ>>А оригинального текста на англ. языке нет? Все-таки не очень ясно какое отношение "родовые параметры" имеют к программированию.


O>Готов поспорить, что это generic parameters


Тогда мне лично не понятно чем:

"шаблон, используемый для построения конкретных классов"

отличается от

"класс с родовыми параметрами".

И если универсальный класс — это полиморфный класс, то где в списке вариантов упоминание виртуальных мемберов?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: Шаблоны в С#
От: Oyster Украина https://github.com/devoyster
Дата: 09.05.06 17:41
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Тогда мне лично не понятно чем: ...


Честно говоря, эти тесты и меня ставят в ступор. Они, просто говоря, дурацкие
Re[4]: Шаблоны в С#
От: Hasmik Армения  
Дата: 09.05.06 17:42
Оценка:
O>>Здравствуйте, Воронков Василий, Вы писали:

ВВ>>>А оригинального текста на англ. языке нет? Все-таки не очень ясно какое отношение "родовые параметры" имеют к программированию.

Оригинальный текст был на русском. Автор — Андрей Биллиг

O>>Готов поспорить, что это generic parameters

да
а универсалный класс — generic class

ВВ>Тогда мне лично не понятно чем:


ВВ>"шаблон, используемый для построения конкретных классов"


ВВ>отличается от


ВВ>"класс с родовыми параметрами".

Можно выбирать любой набор ответов
Re[5]: Шаблоны в С#
От: Oyster Украина https://github.com/devoyster
Дата: 09.05.06 17:46
Оценка:
Здравствуйте, Hasmik, Вы писали:

ВВ>>>>А оригинального текста на англ. языке нет? Все-таки не очень ясно какое отношение "родовые параметры" имеют к программированию.

H>Оригинальный текст был на русском. Автор — Андрей Биллиг

О... так он переводчик и научный редактор издания этого перевода Мейера. Теперь-то понятно, откуда у "родовых" ноги растут
Re[5]: Шаблоны в С#
От: kpumuk Украина http://kpumuk.info/
Дата: 09.05.06 17:55
Оценка: 26 (1) +1 :))) :)
Здравствуйте, Hasmik, Вы писали:

ВВ>>>>А оригинального текста на англ. языке нет? Все-таки не очень ясно какое отношение "родовые параметры" имеют к программированию.

H>Оригинальный текст был на русском. Автор — Андрей Биллиг

Предлагаю перевести оригинальный русский на более привычный английский. Слишком уж этот русский оригинальный...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: Шаблоны в С#
От: Воронков Василий Россия  
Дата: 09.05.06 17:59
Оценка: +6 :)
Здравствуйте, Hasmik, Вы писали:

Может все-таки не стоит это читать? Выглядит по крайней мере жутко, и даже если вы научитесь "правильно" отвечать на такие тесты, то вам это на пользу не пойдет.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Шаблоны в С#
От: VladD2 Российская Империя www.nemerle.org
Дата: 09.05.06 18:54
Оценка:
Здравствуйте, Oyster, Вы писали:

O>...так что или переводчики те же...


А кто переводчики?

Имя сестра, имя...

... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Шаблоны в С#
От: VladD2 Российская Империя www.nemerle.org
Дата: 09.05.06 18:54
Оценка:
Здравствуйте, Oyster, Вы писали:

O>О... так он переводчик и научный редактор издания этого перевода Мейера. Теперь-то понятно, откуда у "родовых" ноги растут


У родовых то ясно откуда — из Лингво. А вот про шаблоны и другую траву — это круто.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Шаблоны в С#
От: GlebZ Россия  
Дата: 09.05.06 19:05
Оценка:
Здравствуйте, Hasmik, Вы писали:

Родовые схватки — знаю. Рассказывали что больно. Родовые параметры — не знаю. Но подозреваю тоже что-то нехорошее.
ВВ>>>>А оригинального текста на англ. языке нет? Все-таки не очень ясно какое отношение "родовые параметры" имеют к программированию.
H>Оригинальный текст был на русском. Автор — Андрей Биллиг
Что-то юмор больно тупой. Он у Петросяна не выступал?
... << RSDN@Home 1.2.0 alpha rev. 0>>
Re[4]: Шаблоны в С#
От: Oyster Украина https://github.com/devoyster
Дата: 09.05.06 19:17
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>А кто переводчики?


Я ж уже говорил, что Андрей Биллиг один из них. Кто остальные, я думаю, неважно — скорее всего, термины придумал именно он как тех. редактор.
Re: Шаблоны в С#
От: kpumuk Украина http://kpumuk.info/
Дата: 09.05.06 19:31
Оценка: :)
Здравствуйте, Hasmik, Вы писали:

H> Универсальный класс – это:

H> шаблон, используемый для построения конкретных классов
H> класс, способный решать любые задачи пользователя
H> класс, методы которого могут иметь родовые параметры
H> класс с родовыми параметрами
H> класс, функциональные возможности которого превосходят возможности его потомков

H> Отметьте истинные высказывания:

H> наследник универсального класса всегда универсален
H> для универсального класса не может указываться атрибут сериализации
H> родовые параметры универсального класса могут задаваться как на уровне класса, так и на уровне методов
H> класс без родовых параметров может быть наследником универсального интерфейса
H> делегаты могут иметь родовые параметры

Простите за мой "английский"

Generic class is a
— template used for building concrete classes
— class which can solve any user's problems
— class with methods which can contain generic parameters
— class with generic parameters
— class with functionality greater then classes derived from it

Check correct statements
— class derived from generic class is always generic
— serialization attribute can't be specified for generic class
— generic parameters for generic class can be specified both for the class and for methods
— class which doesn't contains generic parameters can be derived from generic interface
— delegates can contain generic parameters
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Шаблоны в С#
От: Hasmik Армения  
Дата: 09.05.06 20:43
Оценка: -1
Здравствуйте, kpumuk, Вы писали:
K>Простите за мой "английский"

K>Generic class is a

K>- template used for building concrete classes
concrete — это цемент. Лучше specific
K>- class which can solve any user's problems
Ну и шутники сидят на ББС. А если у юзера жена ушла?
K>- class with methods which can contain generic parameters
Это правильный ответ
K>- class with generic parameters
И это правильный ответ
K>- class with functionality greater then classes derived from it
class wich functionality exceeds that of derived classes

K>Check correct statements

K>- class derived from generic class is always generic

K>- serialization attribute can't be specified for generic class
может
K>- generic parameters for generic class can be specified both for the class and for methods
что он имеет в виду, непонятно. Ежели так,<> то в заголовке класса. А упоминаться могут в методах.
K>- class which doesn't contains generic parameters can be derived from generic interface
нет. А хотя хрен его знает.
K>- delegates can contain generic parameters
да
Re[3]: Шаблоны в С#
От: Mab Россия http://shade.msu.ru/~mab
Дата: 09.05.06 21:01
Оценка: +1
Здравствуйте, Hasmik, Вы писали:

K>>- class with methods which can contain generic parameters

H>Это правильный ответ
Сомневаюсь. Согласно п. 25.1 стандарта

A generic class declaration is a declaration of a class that requires type arguments to be supplied in order to
form runtime types.
...
A class declaration that supplies a type-parameter-list is a generic class declaration.

Так что здесь
class C 
{
  void foo<T>() {}
}

нет generic class declaration.

K>>- class derived from generic class is always generic

H>
Не верно
class Base<T> {}
class Derived : Base<object> {}


K>>- generic parameters for generic class can be specified both for the class and for methods

H>что он имеет в виду, непонятно. Ежели так,<> то в заголовке класса. А упоминаться могут в методах.
Действительно, не понятно, особенно учитывая, что термин 'generic parameters' в стандарте не используется.

K>>- class which doesn't contains generic parameters can be derived from generic interface

H>нет.
Не верно, может.
class C : IEnumerable<int>
{
...
}

В любом случае, вопрос сфорулирован некорректно, т.к. "derived from interface" не говорят.

Наконец, формально говоря, IEnumerable<int> -- это не generic type, а closed constructed type (25.5). Собственно unbound generic type-ом будет IEnumerable<>, от которого наследоваться вообще нельзя (25.5):

An unbound generic type can only be used within a typeofexpression
(§14.5.11).

Re[4]: Шаблоны в С#
От: Воронков Василий Россия  
Дата: 09.05.06 23:31
Оценка:
Здравствуйте, Mab, Вы писали:

Mab>Наконец, формально говоря, IEnumerable<int> -- это не generic type, а closed constructed type (25.5). Собственно unbound generic type-ом будет IEnumerable<>, от которого наследоваться вообще нельзя (25.5):

Mab>

Mab>An unbound generic type can only be used within a typeofexpression
Mab>(§14.5.11).


Возможно, тут имеется в виду:

class C<T> : IEnumerable<T>
{

}


что типа именно такой случай рассмотривать как наследование от генерика.

Хотя по любому вопросы психоделлические.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Шаблоны в С#
От: Воронков Василий Россия  
Дата: 09.05.06 23:36
Оценка:
Здравствуйте, Hasmik, Вы писали:

K>>Generic class is a

K>>- template used for building concrete classes
H>concrete — это цемент. Лучше specific

Concrete вроде вполне устоявшееся название.

K>>- class with functionality greater then classes derived from it

H>class wich functionality exceeds that of derived classes

А смысл не поменялся на противположный?

K>>- generic parameters for generic class can be specified both for the class and for methods

H>что он имеет в виду, непонятно. Ежели так,<> то в заголовке класса. А упоминаться могут в методах.

Возможно, имеется в виду может ли генерик-параметр класса использоваться так же и для методов. По типу:

class Foo<T>
{
    void Invoke<T>();
}


В таком случае ответ — да.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Шаблоны в С#
От: Igor Sukhov  
Дата: 10.05.06 05:09
Оценка:
Здравствуйте, Hasmik, Вы писали:

H> Универсальный класс – это:


Давай еще. Давно так широко не улыбало. Лучше сразу в Rsdn.Humour — если что-отмодерируем в этот форум.
* thriving in a production environment *
Re[2]: Шаблоны в С#
От: VladGalkin Украина  
Дата: 10.05.06 07:02
Оценка:
Здравствуйте, Igor Sukhov, Вы писали:

IS>Давай еще. Давно так широко не улыбало. Лучше сразу в Rsdn.Humour — если что-отмодерируем в этот форум.

Лучше бы Андрея Биллига отмодерировать...куда нибудь. Это же абзац, люди по этим книгам учатся! Представляете себе, поколение
программистов взрощённое на "родовых параметрах" и "универсальных классах"...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
ДЭ!
Re[3]: Шаблоны в С#
От: Hasmik Армения  
Дата: 10.05.06 07:14
Оценка:
Здравствуйте, VladGalkin, Вы писали:

VG>Здравствуйте, Igor Sukhov, Вы писали:


IS>>Давай еще. Давно так широко не улыбало. Лучше сразу в Rsdn.Humour — если что-отмодерируем в этот форум.

VG>Лучше бы Андрея Биллига отмодерировать...куда нибудь. Это же абзац, люди по этим книгам учатся! Представляете себе, поколение
VG>программистов взрощённое на "родовых параметрах" и "универсальных классах"...
А чем вам не нравится? Если у вас нет альтернативной терминологии, критиковать чужую неконструктивно.
Re[4]: Шаблоны в С#
От: stele Россия www.stele.su
Дата: 10.05.06 07:32
Оценка:
Здравствуйте, Hasmik, Вы писали:

VG>>программистов взрощённое на "родовых параметрах" и "универсальных классах"...

H>А чем вам не нравится? Если у вас нет альтернативной терминологии, критиковать чужую неконструктивно.

Не использовать перевод терминов, для которых в русском языке нет устоявшихся или однословных вариантов. Применять транслитирирование или трансткрипцию как будет более благозвучно. Применяют же здесь на форуме термины контрол, дженерик и это гораздо более удобочтаемо и понятно по русски. Отчаянным русофилам и поклонникам чистоты русского языка могу заметить, что такая практика очень давно существует в других науках (например химии) и её не смогло вытравить даже борьба с космополитизмом в определённый период нашей истории.
... <<My edition based on RSDN@Home 1.2.0 alpha rev. 648>>
В задаче спрашивается:
Сколько вытечет портвейна из открытого бассейна?
Re[2]: Шаблоны в С#
От: Andrbig  
Дата: 10.05.06 07:37
Оценка:
Здравствуйте, VladD2, Вы писали:


VD>Это что очередной экзаменациоонный вопрос?

Думаю скорее социологический.

VD>Откуда это чудо?

Re[4]: Шаблоны в С#
От: Hasmik Армения  
Дата: 10.05.06 09:15
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

K>>>- class with functionality greater then classes derived from it

H>>class wich functionality exceeds that of derived classes

ВВ>А смысл не поменялся на противположный?

Нет. Только поправка — whose
exceed — превосходить
K>>>- generic parameters for generic class can be specified both for the class and for methods
H>>что он имеет в виду, непонятно. Ежели так,<> то в заголовке класса. А упоминаться могут в методах.

ВВ>Возможно, имеется в виду может ли генерик-параметр класса использоваться так же и для методов. По типу:


ВВ>
ВВ>class Foo<T>
ВВ>{
ВВ>    void Invoke<T>();
ВВ>}
ВВ>


ВВ>В таком случае ответ — да.

У меня ваш код сразу дает ошибку компиляции.
void Invoke(T t); — так можно
Re[2]: Шаблоны в С#
От: Hasmik Армения  
Дата: 10.05.06 09:21
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Hasmik, Вы писали:


А>Незачет. Придете на пересдачу на следующей неделе.

А вот и нет. Уже сдала и этот, и следующий. Осталось всего 2 теста.
Re[4]: Шаблоны в С#
От: Hasmik Армения  
Дата: 10.05.06 09:36
Оценка:
K>>>- generic parameters for generic class can be specified both for the class and for methods
H>>что он имеет в виду, непонятно. Ежели так,<> то в заголовке класса. А упоминаться могут в методах.
Mab>Действительно, не понятно, особенно учитывая, что термин 'generic parameters' в стандарте не используется.

Так перевел kpumuk. Читайте "Type parameters"
Re[5]: Шаблоны в С#
От: Воронков Василий Россия  
Дата: 10.05.06 17:04
Оценка:
Здравствуйте, Hasmik, Вы писали:

H>Здравствуйте, Воронков Василий, Вы писали:


K>>>>- class with functionality greater then classes derived from it

H>>>class wich functionality exceeds that of derived classes

ВВ>>А смысл не поменялся на противположный?

H>Нет. Только поправка — whose
H>exceed — превосходить

Т.е. смысл фразы получается — "класс, чья функциональность превосходит функциональность отнаследованных от него классов"?
Re[6]: Шаблоны в С#
От: Hasmik Армения  
Дата: 10.05.06 17:05
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Здравствуйте, Hasmik, Вы писали:


H>>Здравствуйте, Воронков Василий, Вы писали:


K>>>>>- class with functionality greater then classes derived from it

H>>>>class wich functionality exceeds that of derived classes

ВВ>>>А смысл не поменялся на противположный?

H>>Нет. Только поправка — whose
H>>exceed — превосходить

ВВ>Т.е. смысл фразы получается — "класс, чья функциональность превосходит функциональность отнаследованных от него классов"?

класс, функциональные возможности которого превосходят возможности его потомков
Именно так было в первоначальном тексте(тесте)
Re[4]: Шаблоны в С#
От: Воронков Василий Россия  
Дата: 10.05.06 17:23
Оценка:
Здравствуйте, Hasmik, Вы писали:

H>А чем вам не нравится? Если у вас нет альтернативной терминологии, критиковать чужую неконструктивно.


Альтернативное решение есть — не использовать альтернативной терминологии
На самом деле если бы даже перевод всех этих терминов был идеальным (каковым он, мягко говоря, не является), то все равно использовать его было бы не самой лучшей идеей — хотя бы потому, что все вокруг говорят на другом языке, и есть немаленькая вероятность, что, если вы начнете рассуждать в категориях "родовых параметров" и "универсальных классов", то вас просто не поймут.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.