C# 2.0 以降の新機能を一つづつ確認していきます。
以前に一度行ったのですが、公式ドキュメント再編でリンク切れしているところを見つけてしまったので。今ならもっと簡潔なサンプルが欠けるところもあるだろうし、せっかくなので今もう一度確認して行きます。
アンマネージド制約
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/generics/constraints-on-type-parameters#unmanaged-constraint
ジェネリックの型パラメータの制約で unmanaged を制約できる。
// where T : unmanaged がない場合、 // エラー CS0208 マネージ型 ('T') のアドレスの取得、サイズの取得、またはそのマネージ型へのポインターの宣言が実行できません unsafe static int Method<T>() where T : unmanaged => sizeof(T);