Доступ к статическим членам вставляемого <.> класса T - C#

Узнай цену своей работы

Формулировка задачи:

Есть некий универсальный класс
public class MeshStd<T>
        {
        List<T> vertices = new List<T>();
        public VertexBuffer buffer;
        public void AddTrinagle(T A, T B, T C)
        {
            vertices.Add(A);
            vertices.Add(B);
            vertices.Add(C);
        }
        public void Clear()
        {
            vertices.Clear();
        }
        public void CreateBuffer()
        {
            buffer = new VertexBuffer(Game1.p.GraphicsDevice,
                T.VertexDeclaration, vertices.Count, BufferUsage.WriteOnly);
            T[] array = vertices.ToArray();
            buffer.SetData<T>(0, array, 0, vertices.Count, T.VertexDeclaration.VertexStride);
        }
 
    }
И всё бы ничего, только вот это место
T.VertexDeclaration
ругается, мол
Ошибка 1 "T" является "параметр-тип", который недопустим в данном контексте d:\UnderConstruct\Construct\Construct\Game1.cs 165 17 Construct
Что делать? Как обратиться к статическому члену подставляемого класса? Я искал но ничего не нашёл

Решение задачи: «Доступ к статическим членам вставляемого <.> класса T»

textual
Листинг программы
public class BaseType<T>
        where T : BaseType<T>
    {
        public Guid Id;
        public static Dictionary<Guid,T> Items = new Dictionary<Guid, T>();
 
        public BaseType()
        {
            Id = Guid.NewGuid();
            Items.Add(Id, (T)this); // тут будет ошибка при привидении типа!
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5
Похожие ответы