Как проверить, инициализируется ли переменная или массив в C#



Мой вопрос: Могу ли я проверить, инициализируется ли переменная (string или int/double type) или массив (string или int/double type) в C#?



Заранее благодарю.

461   6  
c#

6 ответов:

Вам гарантирована некоторая разновидность инициализации. Для любого статического элемента или экземпляра все переменные автоматически инициализируются при построении типа или экземпляра, явно или неявно (в этом случае default(Type) является значением, поэтому 0 для числовых типов, null для строк и других ссылочных типов и т. д.).

Для локальных переменных они не могут использоваться до объявления, поэтому, если вы можете проверить его, он был инициализирован.

Да, вы можете.

Для типов, которым требуются экземпляры (строки или массивы, как вы просили), можно проверить, являются ли они null.

Вы можете сделать это многими способами, но один из них:

if (myObject == null)
{
    //initialize it here
}

Примитивные типы данных не требуют создания экземпляров. Например:

Int i;

Не будет равно нулю, оно будет равно 0.

Попробуйте Это,:

If var = NULL Then
MsgBox ('Not initialized')
End If

C# требует, чтобы все переменные были инициализированы до некоторого значения перед их чтением.

Блок кода:

int i;
if(i == 0)
{
  // something...
}

Вызовет ошибку времени компиляции, поскольку вы пытаетесь получить доступ к значению i перед его назначением. Это также относится к объектам (хотя для начала их можно инициализировать в null).

Если вы хотите знать, изменились ли вы с вашего первоначального задания, то нет, нет способа сказать это напрямую, если только начальное задание не было изменено. присвоение относится к значению sentinel, которое не будет повторено последующим присвоением. Если это не так, вам понадобится дополнительный bool для отслеживания.

Нет. Однако если это локальная переменная, то вы получите ошибку компилятора. Если это член класса, то он автоматически инициализируется по умолчанию (0 для ints, null для объектов и т. д.)

язык в щеку, но точный ответ

Просканируйте исходный код и найдите все способы использования и объявления переменной, чтобы убедиться, что она инициализирована либо при объявлении, либо где-то еще, прежде чем использовать ее.

Comments

    Ничего не найдено.