Когда я использую структуры C # (типы значений ) жертвовать производительностью?

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

Вот основная идея того, о чем я думал.

public struct NeverNull<T>
    where T: class, new()
{

    private NeverNull(T reference)
    {
        _reference = reference;
    }

    private T _reference;

    public T Reference
    {
        get
        {
            if(_reference == null)
            {
                _reference = new T();
            }
            return _reference;
        }
        set
        {
            _reference = value;
        }
    }

    public static implicit operator NeverNull<T>(T reference)
    {
        return new NeverNull<T>(reference);
    }

    public static implicit operator T(NeverNull<T> value)
    {
        return value.Reference;
    }
}
14
задан smartcaveman 9 December 2010 в 15:30
поделиться