Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
sealed internal (C#)
|
|||
|---|---|---|---|
|
#18+
Если класс internal имеет ли смыслс помечать его как sealed или компилер по умолчанию считает internal классы sealed? Программирую за еду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 11:03 |
|
||
|
sealed internal (C#)
|
|||
|---|---|---|---|
|
#18+
internal - вроде как, может использоваться только внутри сборки, а sealed - не может иметь наследников. Почему компилер должет думать что internal это sealed---------------------------------------- Knowledge is P...O...w...E...R! My site ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 11:14 |
|
||
|
sealed internal (C#)
|
|||
|---|---|---|---|
|
#18+
Использовать в другой сборке internal ты все равно не сможешь, а внутри самой сборки sealed может иметь смысл... ну просто как sealed :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 11:15 |
|
||
|
sealed internal (C#)
|
|||
|---|---|---|---|
|
#18+
internal - вроде как, может использоваться только внутри сборки, а sealed - не может иметь наследников. Почему компилер должет думать что internal это sealed sealed -- это гарантия того, что виртуальный метод можно смело инлайнить (т.к. его не перегрузить). По идее у интернал тоже не должно быть наследников (хотя его можно достать из сборки через жопу, но это порблема того, кто его достал) => к нему можно применять ту же оптимизацию, что и к sealed. Вопрос в том, стоит ли мне перед каждым внутренним классом писать sealed или я просто зря буду расходовать ресурс клавиатуры? Программирую за еду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 14:27 |
|
||
|
sealed internal (C#)
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, guest-34587, Вы писали: G3>Использовать в другой сборке internal ты все равно не сможешь В CLR2.0 сможешь, использую аттрибут InternalsVisible. RSDN@Home Nemerle .NET Localizer ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 14:52 |
|
||
|
sealed internal (C#)
|
|||
|---|---|---|---|
|
#18+
Почему вы думаете что у интернал не должно быть наследников. Если у вас в сборке есть класс fooProvider, для работы с foo, и есть класс foo2, у него провайдер foo2Provider - наследник fooProvider. И вам необходимо что бы провайдеры были доступны только для этих двух классов, а все кто использую сборку о них не знали, вы помечаете их как internal ---------------------------------------- Knowledge is P...O...w...E...R! My site ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 15:00 |
|
||
|
sealed internal (C#)
|
|||
|---|---|---|---|
|
#18+
Почему вы думаете что у интернал не должно быть наследников. Если у вас в сборке есть класс fooProvider, для работы с foo, и есть класс foo2, у него провайдер foo2Provider - наследник fooProvider. И вам необходимо что бы провайдеры были доступны только для этих двух классов, а все кто использую сборку о них не знали, вы помечаете их как internal Всё фигня кроме пчёл. Инлайн оптимизация работает так: Foo2 bar = foo2Provider.Baz() bar.Quux(); если известно, что у Foo2 не может быть наследников, Quux() можно инлайнить, даже если он виртуальный. Если написать: Foo bar = fooProvider.Baz() bar.Quux(); даже если вместо Foo возвращается sealed Foo2 никакой оптимизации не будет. Но тут V.Petrovski правильно всем напомнил про InternalsVisible, значит у internal может быть вполне законный наследник в сборке, про которую компилятор ничего не знает, значит для финальных классов сеалед нужно писать вне зависимости от того интернал он или нет. Программирую за еду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 15:31 |
|
||
|
sealed internal (C#)
|
|||
|---|---|---|---|
|
#18+
Может просто посмоттреть IL в том и другом случиях?---------------------------------------- Knowledge is P...O...w...E...R! My site ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 16:12 |
|
||
|
sealed internal (C#)
|
|||
|---|---|---|---|
|
#18+
Если рефлектором взглянуть на FW то в нем есть классы помеченные просто internal ---------------------------------------- Knowledge is P...O...w...E...R! My site ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 16:22 |
|
||
|
sealed internal (C#)
|
|||
|---|---|---|---|
|
#18+
Может просто посмоттреть IL в том и другом случиях? Безполезнячок. IL полностью соответсвует исходнику. Всякие оптимизации начинаются при компиляции самого IL. Да и что там смотреть? и так все понятно... Программирую за еду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 16:50 |
|
||
|
sealed internal (C#)
|
|||
|---|---|---|---|
|
#18+
Может тестами потестишь производительность??? А потом сообщение в блоге, или статью накатаешь!---------------------------------------- Knowledge is P...O...w...E...R! My site ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 17:25 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=18&tid=1390656]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
132ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 263ms |
| total: | 500ms |

| 0 / 0 |
