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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Структура, массив в стурктуре 
V
    Опции темы
kuller
Дата 7.7.2008, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Здравствуйте!!!
Вобщем мне нужно создать структуру, в которой будет массив на 5 элементов

Я делаю вот так:
Код

 struct STUDENT
    {
        public string NAME;
        public int GROUP;
        public int[] ocenki = new int [5];
    }


и он выдает вот аткую вот ошибку:

'n2z328.STUDENT.ocenki': cannot have instance field initializers in structs

Подскажите в чем дело.
Заранее спасибо.
PM MAIL   Вверх
nikitao
Дата 7.7.2008, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кот-программист
***


Профиль
Группа: Завсегдатай
Сообщений: 1206
Регистрация: 30.8.2005
Где: Спб

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



В структурах C# запрещены конструкторы по-умолчанию. А inline инициализация - это вмешательство в работу всех конструкторов , в том числе и конструктора по-умолчанию


--------------------
Жизнь - печальная штука.
PM MAIL ICQ Skype GTalk   Вверх
kuller
Дата 7.7.2008, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



nikitao, Спасибо!
уже исправил и все работает)
Тема закрыта.
PM MAIL   Вверх
nikitao
Дата 7.7.2008, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кот-программист
***


Профиль
Группа: Завсегдатай
Сообщений: 1206
Регистрация: 30.8.2005
Где: Спб

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



smile удачи


--------------------
Жизнь - печальная штука.
PM MAIL ICQ Skype GTalk   Вверх
Idsa
Дата 7.7.2008, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 6
Всего: 62



У меня, видимо, развивается склероз smile Напомните, по каким соображениям у структур запрещены конструкторы по умолчанию.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
PashaPash
Дата 7.7.2008, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 9
Всего: 49



Idsa, потому что copies of structs are created and destroyed automatically by the compiler, a default constructor and destructor are unnecessary. In effect, the compiler implements the default constructor by assigning all the fields of their default values.


--------------------
PM MAIL WWW   Вверх
wotker
Дата 7.7.2008, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 18.7.2006
Где: Ростов-на-Дону

Репутация: 2
Всего: 5



Могу добавить, что 
1) CLR позволяет создавать дефолтовые конструкторы.
2) каждый конструктор структоры должен явно вызываться (иначе все поля будут инициализироваться дефолтвоми значениями).
3) конструктор должен инициализировать все поля структуры
 
--------------------
ICQ ::            347306684e-mail ::         wotker[at]rambler[dot]ru 
PM MAIL ICQ   Вверх
nikitao
Дата 7.7.2008, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кот-программист
***


Профиль
Группа: Завсегдатай
Сообщений: 1206
Регистрация: 30.8.2005
Где: Спб

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



Я на самом деле вообще этой темы не понимаю. Причины это конечно хорошо , но это имхо оч криво выглядит.


--------------------
Жизнь - печальная штука.
PM MAIL ICQ Skype GTalk   Вверх
wotker
Дата 7.7.2008, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 18.7.2006
Где: Ростов-на-Дону

Репутация: 2
Всего: 5



согласен.
да еще и на экзаменах приходится все это вспоминать..

--------------------
ICQ ::            347306684e-mail ::         wotker[at]rambler[dot]ru 
PM MAIL ICQ   Вверх
nikitao
Дата 7.7.2008, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кот-программист
***


Профиль
Группа: Завсегдатай
Сообщений: 1206
Регистрация: 30.8.2005
Где: Спб

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



Оффтоп )))

Вы структуры свои юзаете ? Я вот привык все в классы фигачить. Я много в производительности или еще в чем то проигрываю ?


--------------------
Жизнь - печальная штука.
PM MAIL ICQ Skype GTalk   Вверх
wotker
Дата 7.7.2008, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 18.7.2006
Где: Ростов-на-Дону

Репутация: 2
Всего: 5



В cpp структуры были оставлены для обратной совместимости.
а в dotNet наверное без них подавно можно обойтись =)  Хотя не уверен - туп я. smile 
--------------------
ICQ ::            347306684e-mail ::         wotker[at]rambler[dot]ru 
PM MAIL ICQ   Вверх
NightmareZ
Дата 7.7.2008, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


[хакер]
**


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

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



Цитата(nikitao @ 7.7.2008,  20:54)
Оффтоп )))

Вы структуры свои юзаете ? Я вот привык все в классы фигачить. Я много в производительности или еще в чем то проигрываю ?

Проигрываешь в производительности.
Например, для 3D-вектора я использую структуру.


--------------------
NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш
Ely-Art.ru - наша маленькая домашняя арт-студия
mugcraft.ru - кружки на любой вкус
PM WWW ICQ Skype GTalk AOL YIM   Вверх
nikitao
Дата 7.7.2008, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кот-программист
***


Профиль
Группа: Завсегдатай
Сообщений: 1206
Регистрация: 30.8.2005
Где: Спб

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



Ясно. Когда займусь рефакторингом  - учту. Спасибо smile 


--------------------
Жизнь - печальная штука.
PM MAIL ICQ Skype GTalk   Вверх
PashaPash
Дата 7.7.2008, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 9
Всего: 49



Цитата(nikitao @  7.7.2008,  20:35 Найти цитируемый пост)
Я на самом деле вообще этой темы не понимаю. Причины это конечно хорошо , но это имхо оч криво выглядит. 
Причина в том, что структура - value type. Критерии выбора между ними расписаны в .NET Framework Developer's Guide - Choosing Between Classes and Structures


--------------------
PM MAIL WWW   Вверх
Idsa
Дата 7.7.2008, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 6
Всего: 62



Цитата(NightmareZ @  8.7.2008,  01:32 Найти цитируемый пост)
Проигрываешь в производительности.

Собственно, разница в том, что структура хранится в стеке, а экземпляр класса - в куче.
Думаю, о проигрыше можно говорить только при использовании большого числа структур.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

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


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

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


 




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


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

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