構造体とインターフェイスとボクシング。

構造体にインターフェイスってあんまりやらなかったんだけど。
振る舞いに対してはつけるもんなんだな。

でもそれを間違ってプロパティにしてしまうとボクシングも絡み嫌な感じに。

static void Main( string[] args ) {
  IA a = new A();
  IA b = a;
  a.Bl = 1;

  Console.WriteLine( a.Bl );  //1
  Console.WriteLine( b.Bl );  //1

  A aa = new A();
  A ba = aa;
  aa.Bl = 1;

  Console.WriteLine( aa.Bl );  //1
  Console.WriteLine( ba.Bl );  //0
}

interface IA {
  int Bl { get; set; }
}

internal struct A : IA {
  public int Bl { get; set; }
}

構造体のインターフェイスにはプロパティを含めてはいけないとかにすればいいのか。