¿Es incorrecta esta inicialización de matriz?

public byte[][,] Shapes = 
    {
        {
            {1,1}, 
            {1,1}
        }, 
        {
            {1}, 
            {1}, 
            {1}, 
            {1}
        },
        {
            {0,0,1},
            {1,1,1}
        }
    };

Recibo este error: "Los inicializadores de matriz solo se pueden usar en una variable o inicializador de campo. Intente usar una nueva expresión en su lugar".

Yo podría hacer esto..

public class Shape
{
    public byte[][,] Shapes;

    public Shape()
    {
        Shapes = new byte[3][,];

        Shapes[0] = new byte[2, 2];
        Shapes[0][0, 0] = 1;
        Shapes[0][0, 1] = 1;
        Shapes[0][1, 0] = 1;
        Shapes[0][1, 1] = 1;

        Shapes[1] = new byte[1, 4];
        Shapes[1][0, 0] = 1;
        Shapes[1][0, 1] = 1;
        Shapes[1][0, 2] = 1;
        Shapes[1][0, 3] = 1;
    }
}

Pero eso hace que sea muy difícil agregar más formas a mi programa.

¿Está mal mi inicializador? Y si no se me permite hacerlo de esta manera, ¿cuál es la forma más fácil de hacerlo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta