为了更方便地在不同的数据结构之间切换,我想为2D数组创建一个通用的包装类......
public sealed class Array2D<T>
{
private T<,> _fields;
public Array2D()
{
}
}
private T<,> _fields;
给了我错误:
类型参数“T”不能与类型参数
一起使用
在这种情况下,我很难理解C#泛型。我怎么能解决这个问题?
答案 0 :(得分:3)
<,>
用于引用未绑定的泛型类型。您要找的是[,]
:
public sealed class Array2D<T>
{
private T[,] _fields;
public Array2D()
{
}
}
答案 1 :(得分:1)
声明数组你需要使用[]
所以它应该是
T[,] array;
答案 2 :(得分:1)
private T[,] _fields;
所以你应该:
public sealed class Array2D<T>
{
private T[,] _fields;
//Or as property
public T[,] Fields
{
get { return _fields; }
set { _fields = value; }
}
public Array2D()
{
}
}
然后使用它:
Array2D<int> arr = new Array2D<int> {Fields = new[,] {{1, 2}, {3, 4}, {5, 6}, {7, 8}}};
答案 3 :(得分:1)
尝试使用List<List<SomeType>>
两个暗淡的数组。在你的情况下可能是List<List<T>>
。这也是通用的。并添加using语句using System.Linq;
using System.Linq.Expressions;
您也可以获得非常丰富的功能。