1 / 1 / 1
Регистрация: 14.10.2015
Сообщений: 94
|
||||||
1 | ||||||
Инициализация полей структуры09.03.2018, 18:53. Просмотров 1986. Ответов 5
Метки нет Все метки)
(
Всем, привет. Такой вопрос, при написании вот такого кода в c#
У меня есть догадка, что при создании вот такого объекта создаются просто скажем так "указатели". Скажем так при создании вот такой переменной память под нее не выделяется. Создаются только адреса для нее и для внутренних ее объектов, поэтому и необходимо их инициализировать. Однако если написать вот так: a first= new a(); То тогда создадутся уже объекты и проинициализируются базовыми значениями. Правильно думаю?
0
|
|
09.03.2018, 18:53 | |
Не происходит инициализация полей
|
|
1740 / 1333 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
|
||||||
09.03.2018, 19:01 | 2 | |||||
![]() Решение
При использовании new по дефолту выставляется 0 и в принципе к элементу структуры мы сможем обратиться, чего нельзя сказать о первом варианте, так что считаю да, Вы думаете правильно
1
|
Администратор
![]() |
|
09.03.2018, 20:05 | 3 |
![]() Решение
Нет. Это локальная переменная.
Именнованная область памяти с размером достаточным для хранения значения данного типа. Сообственно как и любая другая локальная переменная. Да. Нет т.к. struct это значимый тип (value type). Догадка ошибочная. Поля необходимо инициализировать т.к. речь идет о локальной переменной на которые распространяется правило обязательной инициализации.
0
|
1 / 1 / 1
Регистрация: 14.10.2015
Сообщений: 94
|
||||||
10.03.2018, 13:07 [ТС] | 4 | |||||
Тогда не понимаю, почему при написании вот такого кода компилятор выдаст ошибку?
0
|
Администратор
![]() |
|
10.03.2018, 13:18 | 5 |
Потому что по правилам языка все локальные переменные должно явно инициализироваться.
Что должно происходить в таком случае решают авторы языка/платформы. Разработчики C# решили что никакого мусора после выделения быть не должно. Именно поэтому локальные переменные нужно явно инициализировать и именно поэтому мы получаем ошибку компиляции.
0
|
1 / 1 / 1
Регистрация: 14.10.2015
Сообщений: 94
|
|
10.03.2018, 13:22 [ТС] | 6 |
Хорошо, я понял, спасибо!
![]()
0
|
10.03.2018, 13:22 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь. Инициализация структуры как поля класса Изменение полей упакованной структуры Структура и список полей структуры Инициализация полей - в чем разница двух приведенных реализаций Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |