このようなエラーになる理由がわかりません。
以下のサンプルコードを見てください。サンプルはメソッドを例にとってますが、フィールド(質問者さんの言うメンバー変数?)、プロパティも同じです。
「これはダメ」とコメントアウトしたようなことをしているのだと思いますが、エラーになる理由は InstanceMethod は Program クラスのインスタンスメソッドだからです。
その下に書いたように Program p = new Program(); で Program クラスのインスタンスを作って、それに紐づけて p.InstanceMethod(); のように実行すればエラーにはならず、望む結果が得られると思います。
一方、StaticMethod メソッドの方は static キーワードを付与して静的メソッドにしていますので、Program.StaticMethod(); だけで呼び出せます(サンプルコードでは Program は省略して StaticMethod(); だけでも可)。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
Program.StaticMethod();
// これはダメ
// InstanceMethod();
Program p = new Program();
p.InstanceMethod();
}
public static void StaticMethod()
{
Console.WriteLine("静的メソッドの呼び出し");
}
public void InstanceMethod()
{
Console.WriteLine("インスタンスメソッドの呼び出し");
}
// 結果は:
// 静的メソッドの呼び出し
// インスタンスメソッドの呼び出し
}
}