//TestCase-001 internal struct MyStruct where T : struct, IPrepareFrameJob { } //TestCase-002 class MyClass where T : class where U : struct { } //TestCase-003 interface IMyInterface { } class Dictionary where TKey : IComparable, IEnumerable where TVal : IMyInterface { public void Add(TKey key, TVal val) {} } long DeviceCommand(int deviceId, ref TCommand command) where TCommand : struct, IInputDeviceCommandInfo; public virtual long OnDeviceCommand(ref TCommand command) where TCommand : struct, IInputDeviceCommandInfo; long DeviceCommand(int deviceId, ref TCommand command) where TCommand : struct, IInputDeviceCommandInfo public virtual long OnDeviceCommand(ref TCommand command) where TCommand : struct, IInputDeviceCommandInfo