У меня есть структура с некоторыми полями. Одно из полей общего типа. Универсальный тип может быть либо ссылочным типом, либо типом значения .
Я хочу принудительно сохранить его как внутреннюю ссылку, чтобы структура не стала слишком большой.
struct Foo<T>
{
T field; // should be a reference
}
Я знаю, что могу использовать объект
или T []
, но оба варианта неудобны. Разве нет чего-то вроде универсального ссылочного типа?
struct Foo<T>
{
Reference<T> field;
}
Да, конечно, я мог бы написать свой собственный. Но я пытаюсь избежать этого
Определите T как класс.
struct Foo<T> where T : class
{
T field; // Now it's a reference type.
}
и если вы хотите, чтобы это был экземпляр:
where T : new()