where T : struct
- 这里 T 必须是值类型。
where T : Unmanaged
- 这里 T 不能是引用类型。
如果结构体和非托管类型都用于值类型,它们之间有什么区别?
where T : struct
- 这里 T 必须是值类型。
where T : Unmanaged
- 这里 T 不能是引用类型。
如果结构体和非托管类型都用于值类型,它们之间有什么区别?
struct
意味着它不接受引用类型,它只接受"值类型"。
Unmanaged
意味着它只接受纯值类型,不能包含任何引用类型部分。struct MyStruct
{
public int f1;
public string f2;
}
这个结构体在 struct
约束中是合法的,但在 unmanaged
约束中是非法的。