Шаблоны в С#
От: 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>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.