Я хотел бы создать общее ограничение, которое содержит тип, чтобы быть массивом типов значений (структуры), что-то вроде:C# общее ограничение: Массив структур
public class X<T> where T : struct[]
или, может быть
public class X<T, U>
where U : struct
where T : U[]
но это не работает. Кажется, System.Array не может использоваться как ограничение типа.
Так как я могу ограничить общий параметр как массив структур?
Обновлено после первого ответа:
public interface IDeepCopyable<T>
{
T DeepCopy(T t);
}
public class DeepCopyArrayOfValueTypes<T> : IDeepCopyable<T>
where T : is an array of value types
{
T Copy(T t) {...}
}
Если бы это было возможно, элементы в массиве не имели бы типа времени компиляции. – SLaks
Это должно быть 'IDeepCopyable где T: IDeepCopyable ' –
SLaks