powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / sealed internal (C#)
12 сообщений из 12, страница 1 из 1
sealed internal (C#)
    #33912473
Начинающий программист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если класс internal имеет ли смыслс помечать его как sealed или компилер по умолчанию считает internal классы sealed?
Программирую за еду.
...
Рейтинг: 0 / 0
sealed internal (C#)
    #33912544
C...R...a...S...H
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
internal - вроде как, может использоваться только внутри сборки,
а sealed - не может иметь наследников.
Почему компилер должет думать что internal это sealed----------------------------------------
Knowledge is P...O...w...E...R!
My site
...
Рейтинг: 0 / 0
sealed internal (C#)
    #33912550
guest-34587
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Использовать в другой сборке internal ты все равно не сможешь, а внутри самой сборки sealed может иметь смысл... ну просто как sealed :)
...
Рейтинг: 0 / 0
sealed internal (C#)
    #33913364
Начинающий программист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
internal - вроде как, может использоваться только внутри сборки,
а sealed - не может иметь наследников.
Почему компилер должет думать что internal это sealed

sealed -- это гарантия того, что виртуальный метод можно смело инлайнить (т.к. его не перегрузить). По идее у интернал тоже не должно быть наследников (хотя его можно достать из сборки через жопу, но это порблема того, кто его достал) => к нему можно применять ту же оптимизацию, что и к sealed. Вопрос в том, стоит ли мне перед каждым внутренним классом писать sealed или я просто зря буду расходовать ресурс клавиатуры?
Программирую за еду.
...
Рейтинг: 0 / 0
sealed internal (C#)
    #33913469
V.Petrovski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, guest-34587, Вы писали:

G3>Использовать в другой сборке internal ты все равно не сможешь
В CLR2.0 сможешь, использую аттрибут InternalsVisible.

RSDN@Home
Nemerle

.NET Localizer
...
Рейтинг: 0 / 0
sealed internal (C#)
    #33913505
C...R...a...S...H
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему вы думаете что у интернал не должно быть наследников.
Если у вас в сборке есть класс fooProvider, для работы с foo, и есть класс foo2, у него провайдер foo2Provider - наследник fooProvider.
И вам необходимо что бы провайдеры были доступны только для этих двух классов, а все кто использую сборку о них не знали, вы помечаете их как internal ----------------------------------------
Knowledge is P...O...w...E...R!
My site
...
Рейтинг: 0 / 0
sealed internal (C#)
    #33913623
Начинающий программист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему вы думаете что у интернал не должно быть наследников.
Если у вас в сборке есть класс 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 может быть вполне законный наследник в сборке, про которую компилятор ничего не знает, значит для финальных классов сеалед нужно писать вне зависимости от того интернал он или нет.
Программирую за еду.
...
Рейтинг: 0 / 0
sealed internal (C#)
    #33913757
C...R...a...S...H
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может просто посмоттреть IL в том и другом случиях?----------------------------------------
Knowledge is P...O...w...E...R!
My site
...
Рейтинг: 0 / 0
sealed internal (C#)
    #33913793
C...R...a...S...H
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если рефлектором взглянуть на FW
то в нем есть классы помеченные просто internal

----------------------------------------
Knowledge is P...O...w...E...R!
My site
...
Рейтинг: 0 / 0
sealed internal (C#)
    #33913893
Начинающий программист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может просто посмоттреть IL в том и другом случиях?

Безполезнячок.
IL полностью соответсвует исходнику. Всякие оптимизации начинаются при компиляции самого IL. Да и что там смотреть? и так все понятно...
Программирую за еду.
...
Рейтинг: 0 / 0
sealed internal (C#)
    #33914007
C...R...a...S...H
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может тестами потестишь производительность???
А потом сообщение в блоге, или статью накатаешь!----------------------------------------
Knowledge is P...O...w...E...R!
My site
...
Рейтинг: 0 / 0
sealed internal (C#)
    #33915489
Начинающий программист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык зачем так себя мучить? и так вроде разобрались...
Программирую за еду.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / sealed internal (C#)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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