Я хотел бы указать ограничение другого типа с универсальным аргументом.
class KeyFrame<T>
{
public float Time;
public T Value;
}
// I want any kind of Keyframe to be accepted
class Timeline<T> where T : Keyframe<*>
{
}
Но этого пока нельзя сделать в c # (и я действительно сомневаюсь, что это когда-нибудь будет). Есть ли какое-нибудь элегантное решение для этого, вместо того, чтобы указывать тип аргумента ключевого кадра?:
class Timeline<TKeyframe, TKeyframeValue>
where TKeyframe : Keyframe<TKeyframeValue>,
{
}