我想创建具有通用数据类型的通用图像类,如下面的代码所示。
在这个实现中,我不喜欢的是我必须像这样声明类:
Image<BGR<byte>, byte> a;
代替:
Image<BGR, byte> a;
有没有办法做到这一点?
public interface IColor<T>
{ }
public struct BGR<T>: IColor<T>
{
public T B;
public T G;
public T R;
}
public class Image<TColor, T> where TColor: IColor<T>
{
TColor[,] data;
}
class Program
{
static void Main(string[] args)
{
Image<BGR<byte>, byte> a;
}
}