Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Язык и синтаксические конструкции 
V
    Опции темы
duk
Дата 16.8.2007, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Some Object
*


Профиль
Группа: Участник
Сообщений: 179
Регистрация: 19.7.2007

Репутация: нет
Всего: 4



Здравсвуйте. В одной из книжек (Троелсена), на скриншоте ILDasma, я случайно обратил внимание на:

...
virtual get;
virtual set;
...

и

private static class ... (этот класс автоматически создается при обьявлении события)

как не пытался это использовать, хотя бы просто скомпилировать, ничего не выходило. В МСДН, толком тоже ничего не нашел.
Кто знает подскажите, для чего это используется, и можно ли это использовать на практике или это просто выкрутасы компилятора.
PM MAIL   Вверх
duk
Дата 16.8.2007, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Some Object
*


Профиль
Группа: Участник
Сообщений: 179
Регистрация: 19.7.2007

Репутация: нет
Всего: 4



Разобрался для чего нужны статические классы, не работали у меня потому, как используются начиная с Microsoft Visual Studio 2005/.NET Framework 2.0

Но вопрос с конструкциями get & set отсался открытым. Если кто-то, что-то про это знает, напишите.  Не лишайте меня знаний. smile 
PM MAIL   Вверх
OLEG_NET
Дата 16.8.2007, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 15.5.2007

Репутация: нет
Всего: 1



А напиши-ка ты страницу
PM MAIL   Вверх
duk
Дата 16.8.2007, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Some Object
*


Профиль
Группа: Участник
Сообщений: 179
Регистрация: 19.7.2007

Репутация: нет
Всего: 4



какую страницу?
если про классы то вот: http://msdn2.microsoft.com/en-us/library/7...ss3(VS.80).aspx
PM MAIL   Вверх
QryStaL
Дата 17.8.2007, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


Профиль
Группа: Участник
Сообщений: 914
Регистрация: 30.11.2005

Репутация: 14
Всего: 32



duk, страницу книжки Троелсена, где находится искомый скриншот с virtual get; virtual set;


--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
Naum
Дата 17.8.2007, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 743
Регистрация: 7.9.2005
Где: Саратов, ул. Поса дского, 298

Репутация: 8
Всего: 15



Честно говоря, непонятно в чем вопрос.
Код

    abstract class Shape
    {
        public Shape()
        {
            
        }
        public abstract double Area
        {
            get;
            set;
        }
    }

В итогу получаем код в IL
Код

.method public hidebysig newslot specialname abstract [color=red]virtual[/color]
        instance float64  get_Area() cil managed
{
} // end of method Shape::get_Area




Это сообщение отредактировал(а) Naum - 17.8.2007, 09:21


--------------------
У нас всего два праздника Новый год и ТЯПница.
PM MAIL ICQ   Вверх
QryStaL
Дата 17.8.2007, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


Профиль
Группа: Участник
Сообщений: 914
Регистрация: 30.11.2005

Репутация: 14
Всего: 32



Мне тоже непонятно, в чем вопрос  smile 

Все абстрактные методы/свойства являются виртуальными.


--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
duk
Дата 17.8.2007, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Some Object
*


Профиль
Группа: Участник
Сообщений: 179
Регистрация: 19.7.2007

Репутация: нет
Всего: 4



Все абстрактные методы/свойства являются виртуальными.

QryStaL, так методы и свойства, а не конструкции get и set.


PM MAIL   Вверх
Naum
Дата 17.8.2007, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 743
Регистрация: 7.9.2005
Где: Саратов, ул. Поса дского, 298

Репутация: 8
Всего: 15



Цитата(duk @  17.8.2007,  12:44 Найти цитируемый пост)
а не конструкции get и set.

get и set - те же самые методы!


--------------------
У нас всего два праздника Новый год и ТЯПница.
PM MAIL ICQ   Вверх
duk
Дата 17.8.2007, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Some Object
*


Профиль
Группа: Участник
Сообщений: 179
Регистрация: 19.7.2007

Репутация: нет
Всего: 4



Правильно.  Правда не совсем. Если свойство например называется prop и оно реализует получение и установку значения, то создаются два метода: get_prop & set_prop, так  что если мы напишем public virtual int prop{}, мы получим   virtual get_prop & virtual set_prop.

А при чем тут virtual get
PM MAIL   Вверх
duk
Дата 17.8.2007, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Some Object
*


Профиль
Группа: Участник
Сообщений: 179
Регистрация: 19.7.2007

Репутация: нет
Всего: 4



Код

         public interface IComponent: IDisposable
    {
        public ISite Site {virtual get; virtual set;}
    }

Перепечатал с книжки. Уменя такое скомпилировать не получилось. Пишет:  Modifiers cannot be placed on property or event accessor declarations
Троелсен стр. 358
PM MAIL   Вверх
Exception
Дата 17.8.2007, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Что-то ты перепутал. На самом деле там так:
Код
public interface IComponent : IDisposable
{
    ISite Site { get; set; }
    event EventHandler Disposed;
}
public class Component : MarshalByRefObject, IComponent, IDisposable
{
    public IContainer Container { get; }
    public ISite Site { virtual get; virtual set; }
}
Естественно, этот код isn't supposed to be compiled, это просто интерфейс, без реализации.
PM   Вверх
QryStaL
Дата 17.8.2007, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


Профиль
Группа: Участник
Сообщений: 914
Регистрация: 30.11.2005

Репутация: 14
Всего: 32



Это кусок из рефлектора:

Код

public interface ISite : IServiceProvider
{
    // Properties
    IComponent Component { get; }
    IContainer Container { get; }
    bool DesignMode { get; }
    string Name { get; set; }
}



--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
duk
Дата 17.8.2007, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Some Object
*


Профиль
Группа: Участник
Сообщений: 179
Регистрация: 19.7.2007

Репутация: нет
Всего: 4



Цитата(Exception @  17.8.2007,  13:35 Найти цитируемый пост)
  ISite Site { get; set; }

Не перепутал. Еще раз посмотрел, точно то же что я и набрал. У меня с виртуалами.

Цитата(Exception @  17.8.2007,  13:35 Найти цитируемый пост)
 public ISite Site { virtual get; virtual set; }
 Что это значит. Вот к чему тут virtual get и virtual set, даже вернее какой в этом смысл?
У меня просто в разделе класс этот не напечатан.

PM MAIL   Вверх
Exception
Дата 17.8.2007, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



QryStaL, эти свойства не в ISite, а в Container.
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0520 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.