using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Vector3<T> where T : unmanaged
public Vector3(T x, T y, T z) => (X, Y, Z) = (x, y, z);
public static void Main()
Console.WriteLine($"Marshal.SizeOf<Vector3<int>>()={Marshal.SizeOf<Vector3<int>>()}");
Console.WriteLine($"Marshal.SizeOf<Vector3<int>>() failed with exception: {ex}");
Console.WriteLine($"Marshal.SizeOf<Nullable<int>>()={Marshal.SizeOf<Nullable<int>>()}");
Console.WriteLine($"Marshal.SizeOf<Nullable<int>>() failed with exception: {ex}");