| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > .NET для новичков > Инициализация static-членов классов\структур |
| Автор: Gunslinger 16.3.2010, 09:31 |
| 1. При определении дата-членов классов\структур почему им сразу присвоить значения нельзя? 2. Если есть статик дата-члены, то необходим статик конструктор. Но если эти дата-члены паблик, то обязателен ли конструктор? Ведь можно их инициализировать в коде. 3. Если есть статик дата-члены, то для них конструкторы создаются автоматически или нужно вручную? |
| Автор: A5uKa 16.3.2010, 15:19 |
| 1. потому, что их нет ещё (используй конструктор) 2. статик конструктора не бывает (они не создаются в процессе выполнения и функция "при создании" не нужна) 3. читай 2. |
| Автор: Gunslinger 16.3.2010, 16:26 | ||
вот что нашел: http://msdn.microsoft.com/ru-ru/library/k9x6w0hc.aspx
Это для всех или только для статик? |
| Автор: A5uKa 16.3.2010, 16:48 | ||
1. А это нифига не статический конструктор. Это конструктор, для статической переменной в классе, а класс то не статический. Почему он называется статическим спроси не меня. 2. Это для не статик |
| Автор: Gunslinger 16.3.2010, 17:59 |
читаю msdn, есть подобные примеры. Выходит, что можно. Под статик конструктором я это и имел ввиду: для статик дата-членов. А что, тут есть какие-нибудь нюансы? |
| Автор: Exai1e 16.3.2010, 21:33 | ||
Gunslinger, статик конструкторы есть (вроде бы аналог Java static конструктора), только параметры они принимать не могут, а статические члены, инициализируют нормально
И вполне норм работает первый раз вижу такое выражение "дата-членов", это как ? можно пример |
| Автор: Kanes 16.3.2010, 21:34 | ||
наверное имеются ввиду fields |
| Автор: Exai1e 16.3.2010, 23:14 |
| понятн, списибо, я примерно так и предполагал. только для меня это немного странное название (возможно из за того что слышу что бы "их" так обзывали (в таком случаи, чем то чувствую что ТС пользуется ru версией студии)) |
| Автор: Kanes 17.3.2010, 10:03 |
| Нет, в русской версии поля - это поля |
| Автор: Gunslinger 17.3.2010, 11:11 |
Студия не русифицированная -- термин "поле" непривычен. Вопрос не в тему: по умолчанию модификатор доступа у всех составляющих класса private? Или только у "полей"? Если private, то как можно вызвать конструктор ? Только если из другого метода того же класса. |
| Автор: Exai1e 17.3.2010, 11:18 | ||||
| Gunslinger, у полей по умолчанию private, у классов - видимости на уровне namespace вот 1 класс
класс в том же проекте
|
| Автор: Kanes 17.3.2010, 11:24 |
Ну надо привыкать к терминологии используемых технологий, у классов есть fields - поля и methods - методы, а никакие-нить дата-члены и функции-члены |
| Автор: Gunslinger 18.3.2010, 13:03 |
| Exai1e, наглядный пример, спасибо. Kanes, а что писать, если членом класса является оператор, делегат, свойство или еще что-нибудь подобное? Они тоже к методам относятся? |
| Автор: Kanes 18.3.2010, 13:09 | ||
А конкретно написал про поля и методы, свойства - это свойства (хотя на самом деле это методы), делегаты - это делегаты, операторы(ты про перегрузки?) соответственно тоже. |
| Автор: mes 28.3.2010, 14:26 | ||
дата-член и функция-член - это терминология C++. |