Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Мелкие особенности C# / 12 сообщений из 12, страница 1 из 1
26.06.2004, 01:05
    #32578500
НЕ СКАЖУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мелкие особенности C#
Такие вопросы:
1.Почему метод Main можно определять как private? Тогда ее нельзя вызвать из внешнего модуля. А среда выполнения как раз это и делает вне зависимости от спецификатора доступа. Как она может вызвать Main при том, что он объявлен как private?
2.Можно ли объявлять в методах статические переменные?
3.Как вы относитеськ тому, что C# не поддерживает множественное наследование?Может это и имеет какое-то логическое объяснение, что в C# от множественного наследования отказались, но как быть, если мы хотим унаследовать функциональность нескольких классов? Пока я не нашел логического объяснения этому. Единственное может быть то, что оно не требуется в 99%. Ведь множественное наследование интерфейсов поддерживается, и этого достаточно.
Заранее спасибо.
...
Рейтинг: 0 / 0
26.06.2004, 11:53
    #32578552
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мелкие особенности C#
автор3.Как вы относитеськ тому, что C# не поддерживает множественное наследование?Может это и имеет какое-то логическое объяснение, что в C# от множественного наследования отказались, но как быть, если мы хотим унаследовать функциональность нескольких классов?

Допустимо наследование от класса и нескольких интерфейсов.
...
Рейтинг: 0 / 0
27.06.2004, 12:05
    #32578781
НЕ СКАЖУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мелкие особенности C#
И больше никто ничего сказать не может?
...
Рейтинг: 0 / 0
27.06.2004, 17:44
    #32578834
greenapple
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мелкие особенности C#
1. CLR ищет метод, помеченный как .entrypoint и вызывает его, игнорируя спецификатор доступа. В процессе компиляции можно переопределять start point, тогда наверное по отношению к main имеют смысл спецификаторы доступа - нельзя будет вызвать main из другого модуля.
2. можно
3. пожалуй верно именно то, что не требуется в 99%, возможно еще реализация множественного наследования сложнее для компилятора и адресации
...
Рейтинг: 0 / 0
28.06.2004, 10:25
    #32579079
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мелкие особенности C#
greenapple2. можно

Ну на счет статических переменных внутри методов вы погорячились.
...
Рейтинг: 0 / 0
28.06.2004, 14:07
    #32579527
greenapple
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мелкие особенности C#
о, да, с этим отличием от VB.NET я еще не сталкивался, пасиб
...
Рейтинг: 0 / 0
28.06.2004, 14:31
    #32579588
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мелкие особенности C#
о, да, с этим отличием от VB.NET я еще не сталкивался, пасиб

ИМХО сомнительная фича, осталась от vb6

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
28.06.2004, 18:09
    #32579925
greenapple
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мелкие особенности C#
да нет в общем, и в Cрр ведь есть
...
Рейтинг: 0 / 0
29.06.2004, 11:21
    #32580587
viper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мелкие особенности C#
От множественного наследования отказались по причине возможности возникновения так назваемого дублирования. Например class A,
class B : A, class C : A, class D : B, C. Возникает такая ситуация: члены A попадут в D как члены B и члены C. А теперь простой вопрос, что вызывать? Честно говоря сразу не вспомню как решался этот вопрос в С++, но вообще множественное наследование порождает кучу проблем, и теоретически в большинстве случаем без него можна обойтись... хотя как говорил классик: "Множестенное наследование как парашют, весчь совершенно бесполезная в хозястве, но когда он вам действительно понадобиться вы очень пожалеете, что его нет..."
_________________________________________________
Легче написать не правильную программу чем понять правильную (С) Alan Perlis
...
Рейтинг: 0 / 0
30.06.2004, 14:48
    #32583482
B0rG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мелкие особенности C#
Не через интерфейсы ли?

IInterfaceA.method1()
IInterfaceB.method1()

Cheers
Pete
...
Рейтинг: 0 / 0
30.06.2004, 17:22
    #32583916
Ustazz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мелкие особенности C#
На С++ проблема решалась, например, через виртуальное наследование - тогда в D попадал только один набор членов А.
...
Рейтинг: 0 / 0
30.06.2004, 17:56
    #32584003
viper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мелкие особенности C#
B0rGНе через интерфейсы ли?

IInterfaceA.method1()
IInterfaceB.method1()

Cheers
Pete

В С++ интерфейсов не было (зачем?), точнее были... но было это все связанно с COM и т.д. и имело совершенно другой смысл...
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Мелкие особенности C# / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]