Я пытаюсь написать код для XNA, чтобы иметь свои собственные модули чертежа, которые я могу использовать для кэширования/рисования статических вершин/индексов.Есть ли способ указать возможные типы для общего класса?
Here's the class, линия в вопросе, который дает мне неприятности является линия 51.
_vertexBuffer.SetData(_vertices.ToArray());
Она имеет ошибку: The type 'T' must be a non-nullable value type in order to use it as parameter 'T'
Это, кажется, не нравится, как SetData обычно ожидает массив Вершины, которые соответствуют VertexDeclaration
, используемым в конструкторе VertexBuffers, в то время как мое определение класса/класса говорит, что это может быть любой тип.
Есть ли способ указать <T>
как вершины?
Не ссылайтесь на внешний сайт для соответствующего кода. См. Http://meta.stackexchange.com/a/89309 –
Если 'SetData' ожидает определенного типа, зачем делать свой класс общим? Не можете ли вы использовать этот конкретный тип (или его базу) вместо 'T'? – dasblinkenlight
@dasblinkenlight Я пробовал это, но у меня все еще была такая же ошибка. Даже если я делаю 'где T: IVertexType', он не работает, поскольку' SetData' ожидает 'struct'. – MatthewMcGovern