![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| duk |
|
|||
![]() Some Object ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 19.7.2007 Репутация: нет Всего: 4 |
Здравсвуйте. В одной из книжек (Троелсена), на скриншоте ILDasma, я случайно обратил внимание на:
... virtual get; virtual set; ... и private static class ... (этот класс автоматически создается при обьявлении события) как не пытался это использовать, хотя бы просто скомпилировать, ничего не выходило. В МСДН, толком тоже ничего не нашел. Кто знает подскажите, для чего это используется, и можно ли это использовать на практике или это просто выкрутасы компилятора. |
|||
|
||||
| duk |
|
|||
![]() Some Object ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 19.7.2007 Репутация: нет Всего: 4 |
Разобрался для чего нужны статические классы, не работали у меня потому, как используются начиная с Microsoft Visual Studio 2005/.NET Framework 2.0
Но вопрос с конструкциями get & set отсался открытым. Если кто-то, что-то про это знает, напишите. Не лишайте меня знаний. |
|||
|
||||
| OLEG_NET |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 15.5.2007 Репутация: нет Всего: 1 |
А напиши-ка ты страницу
|
|||
|
||||
| duk |
|
|||
![]() Some Object ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 19.7.2007 Репутация: нет Всего: 4 |
||||
|
||||
| QryStaL |
|
|||
![]() Intellectual feast ![]() ![]() Профиль Группа: Участник Сообщений: 914 Регистрация: 30.11.2005 Репутация: 14 Всего: 32 |
duk, страницу книжки Троелсена, где находится искомый скриншот с virtual get; virtual set;
-------------------- I don't need a reason being who I am... |
|||
|
||||
| Naum |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 743 Регистрация: 7.9.2005 Где: Саратов, ул. Поса дского, 298 Репутация: 8 Всего: 15 |
Честно говоря, непонятно в чем вопрос.
В итогу получаем код в IL
Это сообщение отредактировал(а) Naum - 17.8.2007, 09:21 -------------------- У нас всего два праздника Новый год и ТЯПница. |
||||
|
|||||
| QryStaL |
|
|||
![]() Intellectual feast ![]() ![]() Профиль Группа: Участник Сообщений: 914 Регистрация: 30.11.2005 Репутация: 14 Всего: 32 |
Мне тоже непонятно, в чем вопрос
Все абстрактные методы/свойства являются виртуальными. -------------------- I don't need a reason being who I am... |
|||
|
||||
| duk |
|
|||
![]() Some Object ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 19.7.2007 Репутация: нет Всего: 4 |
Все абстрактные методы/свойства являются виртуальными.
QryStaL, так методы и свойства, а не конструкции get и set. |
|||
|
||||
| Naum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 743 Регистрация: 7.9.2005 Где: Саратов, ул. Поса дского, 298 Репутация: 8 Всего: 15 |
-------------------- У нас всего два праздника Новый год и ТЯПница. |
|||
|
||||
| duk |
|
|||
![]() Some Object ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 19.7.2007 Репутация: нет Всего: 4 |
Правильно. Правда не совсем. Если свойство например называется prop и оно реализует получение и установку значения, то создаются два метода: get_prop & set_prop, так что если мы напишем public virtual int prop{}, мы получим virtual get_prop & virtual set_prop.
А при чем тут virtual get |
|||
|
||||
| duk |
|
|||
![]() Some Object ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 19.7.2007 Репутация: нет Всего: 4 |
Перепечатал с книжки. Уменя такое скомпилировать не получилось. Пишет: Modifiers cannot be placed on property or event accessor declarations Троелсен стр. 358 |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
Что-то ты перепутал. На самом деле там так:
|
|||
|
||||
| QryStaL |
|
|||
![]() Intellectual feast ![]() ![]() Профиль Группа: Участник Сообщений: 914 Регистрация: 30.11.2005 Репутация: 14 Всего: 32 |
Это кусок из рефлектора:
-------------------- I don't need a reason being who I am... |
|||
|
||||
| duk |
|
|||
![]() Some Object ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 19.7.2007 Репутация: нет Всего: 4 |
Не перепутал. Еще раз посмотрел, точно то же что я и набрал. У меня с виртуалами. Что это значит. Вот к чему тут virtual get и virtual set, даже вернее какой в этом смысл? У меня просто в разделе класс этот не напечатан. |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
QryStaL, эти свойства не в ISite, а в Container.
|
|||
|
||||
| duk |
|
|||
![]() Some Object ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 19.7.2007 Репутация: нет Всего: 4 |
Exception,
Для чего автор это напечатал? Имеет ли это какой-то реальный смысл или автор, хотел просто показать что свойство, реализуемое в классе будет виртуальным? |
|||
|
||||
| QryStaL |
|
|||
![]() Intellectual feast ![]() ![]() Профиль Группа: Участник Сообщений: 914 Регистрация: 30.11.2005 Репутация: 14 Всего: 32 |
Exception, вообще-то нет. Сам глянь.
-------------------- I don't need a reason being who I am... |
|||
|
||||
| duk |
|
|||
![]() Some Object ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 19.7.2007 Репутация: нет Всего: 4 |
Ладно, учитывая высокую активность, будем считать, что вопрос закрыт. Спасибо всем, кто хоть что нибудь написал.
Кстати, чтоб эта тема была кому-то полезной, вот то самое основное, что нужно знать по поводу статических классов (как мне кажется): Для тех кому лень смотреть МСДН: Статические классы по сути своей классами и не являются. Просто сделали саму семантическую конструкцию, похожую на класс для простоты (интуитивности) использования - а так, это просто оболочки для хранения данных и методов, как пространства имен. Все-таки чем же они отличаются от реальных классов: 1. Все члены этих классов должны быть статическими. 2. Эти классы произведены не посредственно от object - только этот класс может быть базовым для них. 3. Они не могут быть базовыми классами. 4. Нельзя создать объекты этого класса. 5. Могут иметь только статический конструктор. 6. Статические классы загружаются автоматически, когда загружается программа или пространство имен, в котором они описаны. Небольшой пример:
Это сообщение отредактировал(а) duk - 19.8.2007, 18:44 |
|||
|
||||
| archeg |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 6.1.2007 Где: Киев Репутация: 11 Всего: 27 |
Статические классы загружаются непосредственно перед вызовом статического конструктора - то есть, перед обработкой первой ссылки внутрь статического класса (за исключением случаев, когда вездесущий JIT-компилятор старается оптимизировать это дело, и выделяет память, а потом вызывает конструктор немного раньше) -------------------- ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru) Дядька всегда можно спросить в аське, если не задалбывать - не откажет И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои ;) |
|||
|
||||
| duk |
|
|||
![]() Some Object ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 19.7.2007 Репутация: нет Всего: 4 |
archeg, по МСДНу 6 пункт верен. Глянь сам.
|
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |