Значение неназначенной не допускающей NULL-значения переменной (C#)

Просто любопытный.

Если Вы идете:

string myString;

Его значение является нулевым.

Но если Вы идете:

int myInt;

Что значение этого является переменным в C#?

Спасибо

David

7
задан David 28 May 2010 в 13:19
поделиться

6 ответов

Во-первых, обратите внимание, что это применимо только для полей, а не для локальных переменных - их нельзя прочитать, пока они не будут назначены, по крайней мере, в C #. Фактически, CLR инициализирует кадры стека до 0, если у вас установлен соответствующий флаг - я считаю, что это по умолчанию. Однако это редко наблюдается - вам придется пройти через несколько уродливых уловок.

Значение по умолчанию int равно 0 - и для любого типа это, по сути, значение, представленное битовым шаблоном, полным нулей. Для типа значения это эквивалентно вызову конструктора без параметров, а для ссылочного типа это значение null.

Обычно среда CLR очищает память нулями.

Это также значение, заданное параметром по умолчанию (SomeType) для любого типа.

27
ответ дан 6 December 2019 в 04:59
поделиться

Значение унифицированной переменной типа T всегда равно по умолчанию (T) . Для всех ссылочных типов это null, а для типов значений см. Ссылку, которую опубликовал @Blorgbeard (или напишите код, чтобы проверить это).

1
ответ дан 6 December 2019 в 04:59
поделиться

Вот таблица значений по умолчанию для типов значений в C #: http://msdn.microsoft.com/en-us/library/83fhsxwc.aspx Значение по умолчанию для ссылочных типов обычно равно null.

2
ответ дан 6 December 2019 в 04:59
поделиться

Строка - это ссылочный тип. Int - это тип значения. Ссылочные типы - это просто указатель на стек, направленный на кучу, который может содержать или не содержать значение. Тип значения - это просто значение в стеке, но оно всегда должно быть каким-то образом.

2
ответ дан 6 December 2019 в 04:59
поделиться

значение int по умолчанию 0

5
ответ дан 6 December 2019 в 04:59
поделиться

Значение по умолчанию для int - 0.

Полный список значений по умолчанию для каждого типа см. Здесь: http://msdn.microsoft.com/en-us/ библиотека / 83fhsxwc.aspx

5
ответ дан 6 December 2019 в 04:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: