私はコンパイル時のエラーを取得し、*ロック(<integer var>)は許可されませんが、Monitor.Enter(<integer var>)は許可されます。次のコードについては
「int型」lockステートメント
int i = 0;
lock(i);
しかし、このためにエラーなしで必要とされる として参照型ではありません。
int i = 0;
Monitor.Enter(i);
私は、合併症が発生したために値のタイプをロックに使用しないでくださいボクシングにe。しかし、それがなぜMonitorで動作するのでしょうか。
私はチェックがあるとは思わない。 lockは、tryブロック内のMonito.Enterとfinallyブロック内のMonitor.Exitで拡張されていません。 – Sandbox
いいえ、それはそれに拡張されますが、最初にコンパイラスポットあなたが道に愚かされている場合... – ShuggyCoUk