Почему я не могу использовать System.ValueType в качестве ограничения обобщений?

Почему я не могу использовать ограничениеwhere T : System.ValueType?Почему Microsoft предотвращает ограничение этого типа?

Пример:

Почему я не могу сделать следующее?

// Defined in a .Net class
public void bar<T>(T a) where T : ValueType {...}

// Defined in my class
public void foo<T>(T a) where T : ValueType 
{ bar<T>(a); }

Какая разница в использовании структуры над ValueType?

// Defined in my class
public void foo<T>(T a) where T : struct 
{ bar<T>(a); }

Ответы на вопрос(3)

Ваш ответ на вопрос