2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Делегаты в С#
Сообщение20.11.2013, 20:25 


22/05/12
24
Добрый день! Помогите найти ответ на вопрос:
1.в чём заключается безопасность применения делегатов?
отвечала так:Делегат указывает на метод объекта, но скрывает информацию о том, какой именно это метод, предоставляя только сигнатуру метода. делегат реализовывает инкапсуляцию в ООП, а инкапсуляция это защита от неправильного использования данных.
Но этого недостаточно, надо ещё что-то важное, чего я не знаю.
2. от какого класса наследовался System.Delegate?
я ответила Object, тоже не зачли.

 Профиль  
                  
 
 Re: Делегаты в С#
Сообщение20.11.2013, 20:57 
Заслуженный участник


27/04/09
28128
Может, ждут, что скажете о типобезопасности? Указателю на функцию в C, если правильно помню, можно присвоить при желании что-то не то с соответствующими последствиями при попытке это вызвать, т. к. информации о сигнатуре функции во время выполнения в этом случае тоже не будет.

Tatyana_math в сообщении #790822 писал(а):
2. от какого класса наследовался System.Delegate?
я ответила Object, тоже не зачли.
(1) Что значит прошедшее время в «наследовался»? И в .NET Framework 3.5, и в 4 он наследуется, действительно, напрямую от System.Object, и в 4.5, вроде, никуда глубже съезжать не собирается.
(2) Как я это узнал? См. MSDN. Это тот источник, который вы должны посмотреть при вопросах насчёт .NET и C# в первую очередь. :wink:

Там же можно загрузить C# Language Specification, в котором читаем ясное
C# Language Specification v3.0; §15 писал(а):
A delegate type is a class type that is derived from System.Delegate. Delegate types are implicitly sealed, so it is not permissible to derive any type from a delegate type. It is also not permissible to derive a non-delegate class type from System.Delegate. Note that System.Delegate is not itself a delegate type; it is a class type from which all delegate types are derived.
Т. е. делегаты наследуются от Delegate, который наследуется от Object. Может, вас спрашивали как раз про конкретные делегаты, а не про их базовый класс?

-- Чт ноя 21, 2013 00:01:08 --

Вообще, по какой версии языка C# у вас курс (или что)? Может, по древней-древней? Если это не оговорено в самом курсе — очень плохо.

-- Чт ноя 21, 2013 00:05:38 --

…или собеседование? Опирайтесь всё равно на то же, т. к. шансы несхождения у поведения компилятора и документации всегда не больше, чем шансы несхождения у первого и понимания какого-нибудь человека, или содержания курса.

 Профиль  
                  
 
 Re: Делегаты в С#
Сообщение21.11.2013, 12:34 


22/05/12
24
Спрашивали про базовый класс как раз, про наследование я тоже именно на MSDN прочла, когда сказала про System.Object, преподаватель сказал, как то неуверенно, что вроде бы не это...типа точно не помню, но кажется не так. Но вот хотела убедиться, что все таки это и теперь буду стоять на своём.
Про безопасность делегатов ещё есть какие-нибудь мысли?

 Профиль  
                  
 
 Re: Делегаты в С#
Сообщение21.11.2013, 14:54 
Заслуженный участник


27/04/09
28128
Tatyana_math в сообщении #791011 писал(а):
преподаватель сказал, как то неуверенно, что вроде бы не это...типа точно не помню, но кажется не так
И чего он тогда от вас хочет, если сам точно не помнит? :shock: Вы, конечно, ему покажите источник. Вдруг он C# Language Reference не доверяет. :?

Tatyana_math в сообщении #791011 писал(а):
Про безопасность делегатов ещё есть какие-нибудь мысли?
Про безопасность мне ничего кроме типобезопасности на ум не приходит. Может, кому-то другому придёт…

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group