コメント部のコードなのですがint a;をなぜstaticにしないとエラーになるのでしょうか?
staticはいくつインスタンスを生成しても一個だけ生成されるという意味だと思うのですが、
その辺はc++などと違うのでしょうか?またpublicやprivateなども付けてみましたがエラーになります。

using System;
//using Console;
//using System.ValueTuple;

class CodeFile1
{
    int a;
    static int[] x;

    static void Main()
    {
        a = 5;  //ここのコードです。
        x = new int[5];
        int[] num = new int[5] { 1, 2, 3, 4, 5 };
        for (int i=0; i< num.Length; i++)
        {
            Console.WriteLine(num[i]);
        }
        Console.ReadKey();
    }
}