Question: For the sake of more easily switching between different data structures I'd like to create a generic wrapper class for a 2D array...

```
public sealed class Array2D<T>
{
    private T<,> _fields;

    public Array2D()
    {
    }
}

```

`private T<,> _fields;` is giving me the error:

> 
> The type parameter 'T' cannot be used with type arguments
> 
> 
> 

I'm having a hard time understanding C# generics in this case. How would I be able to solve this?

Answer: 
`<,>` is for referencing unbound generic types. What you are looking for is `[,]`:

```
public sealed class Array2D<T>
{
    private T[,] _fields;

    public Array2D()
    {
    }
}

```
to declare array you need to use `[]` so it should be

```
T[,] array;

```