大した話じゃないんですが、下記ソース。

public void hoge()
{
    //プリミティブ
    int t = 1;
    int tt = t;
    Console.WriteLine("ref={0}", Object.ReferenceEquals(t, tt));//⇒False
    //オブジェクト
    Object o = new object();
    Object oo = o;
    Console.WriteLine("ref={0}", Object.ReferenceEquals(o, oo));//⇒True
    //string
    string s = "s";
    string ss = s;
    Console.WriteLine("ref={0}", Object.ReferenceEquals(s, ss));//⇒True
    //オブジェクトの中のプリミティブ
    SampleValue x = new SampleValue();
    SampleValue xx = x;
    Console.WriteLine("ref={0}", Object.ReferenceEquals(x, xx));//⇒True
    Console.WriteLine("ref={0}", Object.ReferenceEquals(x.v, xx.v));//⇒False!!!
}
public class SampleValue
{
    public int v = 1;
}

オブジェクトは参照渡しだから、ReferenceEqualsがTrueになるのは分かるんだけど、

中のプリミティブな奴ってFalseになるんですね。

そうなのかーーーと思って。

なんか、すんませんでした。。。