C# 2.0
Например, хочу создать класс матриц:
class MyMatrix<T> where ???????
{
...
}
Как мне указать, что в качестве T может выступать класс, для объектов которого определены операции + и * ?
....или вот ещё, пишу я например вот так:
using System;
namespace Test
{
class Program
{
public static T func<T>(T x)
{
return x + x;
}
static void Main()
{
Console.WriteLine(func(5));
Console.ReadLine();
}
}
}
А оно мне отвечает:
Operator '+' cannot be applied to operands of type 'T' and 'T'
А как ему объяснить, что к операндам типа T можно применить операцию '+'? Или как запретить передавать параметры тип которых не поддерживает операцию '+'?
И, если этого нельзя сделать, то скажите пожалуйста, как правильно определить generic-класс матриц, который мог бы обрабатывать как стандартные типы (int, double, ...) так и определённые мной?