значение по умолчанию переменной во время объявления в C# и VB?

Он относится к текущему экземпляру определенного объекта, поэтому вы можете написать что-то вроде

public Object getMe() {
    return this;
}

. Обычный прецедент this - это предотвращение затенения. Возьмем следующий пример:

public class Person {
    private final String name;

    public Person(String name) {
        // how would we initialize the field using parameter?
        // we can't do: name = name;
    }
}

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

public class Person {
    private final String name;

    public Person(String name) {
        this.name = name;
    }
}
20
задан 26 February 2009 в 10:11
поделиться

5 ответов

В c# можно использовать ключевое слово по умолчанию для определения значений по умолчанию.

, Например:

default(bool)
default(int)
default(int?)
47
ответ дан 29 November 2019 в 22:28
поделиться

Это может быть найдено в MSDN:

Visual Basic.NET определяет следующие типы примитивов:

интегральное значение вводит Байт (1-байтовое целое число без знака), Короткий (2-байтовое целое число со знаком), Целое число (4-байтовое целое число со знаком), и Long (8-байтовое целое число со знаком). Эти типы отображаются на Систему. Байт, Система. Int16, Система. Int32 и Система. Int64, соответственно. значение по умолчанию целочисленного типа эквивалентно литеральному 0.

значение с плавающей точкой вводит Единственный (4-байтовая плавающая точка) и Дважды (8-байтовая плавающая точка). Эти типы отображаются на Систему. Единственный и Система. Дважды, соответственно. значение по умолчанию типа с плавающей точкой эквивалентно литеральному 0.

Десятичный тип (16-байтовое десятичное значение), который отображается на Систему. Десятичное число. Значение по умолчанию десятичного числа эквивалентно литералу 0D.

тип булева значения, который представляет значение истинности, обычно результат реляционной или логической операции. Литерал имеет систему типов. Булевская переменная. значение по умолчанию булева типа эквивалентно литеральной Лжи.

тип значения Даты, который представляет дату и/или время и отображается на Систему. DateTime. значение по умолчанию типа Даты эквивалентно литералу # 01.01.01 0:00:00 #.

Символьный тип значения, который представляет единственный символ Unicode и отображается на Систему. Символ. значение по умолчанию Символьного типа эквивалентно константному выражению ChrW (0).

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

http://msdn.microsoft.com/en-us/library/aa711900.aspx

14
ответ дан 29 November 2019 в 22:28
поделиться

Вы имеете в виду (метод) переменную? или поле (на экземпляре или типе)?

Для переменной уровня метода (в C#, по крайней мере) это не важно, начиная с "определенное присвоение" означает, что Вы должны давать ему значение, прежде чем можно будет считать его.

Полевое значение по умолчанию к поразрядному нулевому состоянию:

  • для ссылочных типов (включая строку), который означает пустой указатель
  • для Nullable<T> (int? и т.д.), который означает пустой указатель
  • для численных данных, который означает 0
  • для перечислений, который означает 0 , даже если нет никакого 0-значного перечисления, определил
  • для bools, который означает ложь
  • для DateTime, который имеет в виду то же как MinValue
  • для других структур, необходимо будет проверить их документацию, но это будет (надо надеяться, разумно) "нулевое/пустое" значение
24
ответ дан 29 November 2019 в 22:28
поделиться

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

  • Составные типы (Строка, StringBuilder) = пустой указатель
  • Числовые типы (интервал, десятичное число, дважды, байт) = 0
  • булевская переменная = ложь
  • DateTime = DateTime. MinValue (01.01.01 0:00:00)

можно установить использование начального значения:

строка s1 = "тест";

Тусклый s1 Как Строка = "тест"

3
ответ дан 29 November 2019 в 22:28
поделиться

В спецификации языка C # указано, что для типов значений значение по умолчанию совпадает со значением, присвоенным конструктором по умолчанию, а для ссылочных типов оно имеет значение null:

Значит, значения конструктора по умолчанию для типов значений следующие:

Для всех простых типов значение по умолчанию значение - это значение, производимое битом шаблон всех нулей:

  • Для sbyte, byte, short, ushort, int, uint, long и ulong значение по умолчанию - 0.

  • Для char значение по умолчанию - '\ x0000'. Для float значение по умолчанию
    значение 0,0f.

  • Для double значение по умолчанию: 0,0d. Для десятичного числа значение по умолчанию - 0,0 м. Для bool значение по умолчанию - false.

  • Для enum-typeE значение по умолчанию - 0.

  • Для типа struct значение по умолчанию - это значение, созданное установка всех полей типа значения на их значение по умолчанию и все поля ссылочного типа на null.

http://msdn.microsoft.com/en-us/library/aa691142 (v = VS.71) .aspx

Строка не является типом значения.

5
ответ дан 29 November 2019 в 22:28
поделиться
Другие вопросы по тегам:

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