■30605 / ) |
参照型の等値演算子でboxingを回避したい |
□投稿者/ ほにゃ (1回)-(2008/12/27(Sat) 22:15:35)
|
分類:[C#]
こんばんは。
以下のようなコードがあります。
interface IHoge { }
class HogeClass { }
static class Test
{
public static bool Test1(HogeClass x, HogeClass y) { return x == y; }
public static bool Test2(IHoge x, IHoge y) { return x == y; }
public static bool Test3<T>(T x, T y) where T : HogeClass { return x == y; }
public static bool Test4<T>(T x, T y) where T : class, IHoge { return x == y; }
}
上記のコードをビルドしてMSILコードを確認すると
Test1 boxingは発生しない
Test2 boxingは発生しない
Test3 boxingが発生する
Test4 boxingが発生する
となるようなのです。
Test3やTest4でboxingが発生するのはなぜなのでしょうか?
Test3やTest4の場合でboxingを回避する方法はないでしょうか?
|
|