Looking for .net Keywords? Try Ask4Keywords

.NET Framework Используемые типы значений


пример

Типы значений просто содержат значение .

Все типы значений производятся из класса System.ValueType , и это включает большинство встроенных типов.

При создании нового типа значения используется область памяти, называемая стеком .
Соответственно, стек будет расти по размеру объявленного типа. Так, например, int всегда будет выделено 32 бита памяти в стеке. Когда тип значения больше не находится в области видимости, пространство в стеке будет освобождено.

В приведенном ниже коде показано, что тип значения присваивается новой переменной. Структура используется как удобный способ создания пользовательского типа значений (класс System.ValueType не может быть иным образом расширен).

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

struct PersonAsValueType
{
    public string Name;
}

class Program
{
    static void Main()
    {
        PersonAsValueType personA;

        personA.Name = "Bob";

        var personB = personA;

        personA.Name = "Linda";

        Console.WriteLine(                // Outputs 'False' - because 
            object.ReferenceEquals(       // personA and personB are referencing 
                personA,                  // different areas of memory
                personB));                

        Console.WriteLine(personA.Name);  // Outputs 'Linda'
        Console.WriteLine(personB.Name);  // Outputs 'Bob'
    }
}