変数、定数、フィールドは記述位置や値の種類によって名前が変化したもので、3点は兄弟のような関係にあります。この3点の役割はデータを格納する、いわば倉庫のようなもので、実際の倉庫のように用途によって使い分ける必要性や格納量の限界も存在します。先ずは記述位置や用途によって変化する名称を整理して見ましょう。
using System;
using System.Windows.Forms;
using System.Drawing;
namespace Var
{
  class VarTest:Form
  {
    // この位置にある変数又は定数はフィールドと呼ばれます。
    static string StaString; // 静的フィールドです。値を代入しなくても問題ありません。
    string InsString;    // インスタンスフィールドです。値を代入する必要があります。
    readonly static string ReaStaString; // 静的(static)の場合constを利用する事は出来ません。
    readonly string ReaString;      // 値を割り当てる必要はありません。
    const string ConString = "定数フィールド"; // 値を割り当てる必要があります。
    private VarTest()
    {
      // フォームが表示される前にメッセージボックスが出現するようにします。
      this.Load += new EventHandler(Form_Load);
    }
    public static voidMain()
    {
      Application.Run(new VarTest());
    }
    private void Form_Load(object sender, EventArgs e)
    {
      VarMethod();
      ConMethod();
      this.Dispose();    // メッセージボックス出現後、アプリケーションを抹殺します。
    }
    private void VarMethod()
    {
      InsString = "インスタンスフィールド"; // インスタンスフィールドに代入します。
      string locString = "ローカル変数";  // ローカル変数です。値を代入が必要です。
      MessageBox.Show(StaString + InsString + locString,"変数の仲間です。");
    }
    private void ConMethod()
    {
      const string locString& = "ローカル定数"; // ローカル定数です。値を代入が必要です。
      MessageBox.Show(ReaStaString + ReaString + ConString + locString +
        "定数の仲間です。");
    }
  }
}
以上のサンプルから分る事は2点あります。第1に変数や定数、フィールドには型が必ず必要だと言う事です。これは先程の倉庫の例でいうところの用途による使い分けに相当します。極論ですが港の冷凍倉庫に放射性廃棄物を格納するのは危険極まりないですし、車を格納するのは無意味です。型に対する知識がプログラミングを快適にする切り札となるでしょう。
第2に代入が必要の有無です。静的フィールドでは値を代入しない場合は既定値に初期化されますが、インスタンスフィールドやローカル変数は既定値に初期化されません。これについては説明が複雑になるので、定数の説明と併せて後ほど詳しくまとめようと思います。サンプルのコメントなどにも解説を挿入します。