C#での差は等しく、==

回します。https://blog.csdn.net/hujiao199/article/details/4027286

システムを使用しました。
System.Collections.Genericを使用しました。
System.Textのを使用しました。

名前空間ConsoleApplication1
{
    クラスPerson
    {
        プライベート文字列名;

        公共の文字列名
        {
            {戻り名を取得します。}
            集合{名前=値。}
        }

        公共人(文字列名)
        {
            this.name =名。
        }
    }


    クラスプログラム
    {
        静的な無効メイン(文字列[] args)
        {
            文字列A =新しい文字列(新たな文字[] { 'H'、 'E'、 'L'、 'L'、 'O'})。
            列B =新しい文字列(新たな文字[] { 'H'、 'E'、 'L'、 'L'、 'O'})。
            Console.WriteLineを(== b)は、
            Console.WriteLineを(a.Equals(b)参照)。

            オブジェクトG =。
            オブジェクトh = B。
            Console.WriteLineを(グラム==のH)。
            Console.WriteLineを(g.Equals(H))。

            人物P1 =新しい人( "JIA")。
            人物P2 =新しい人( "JIA")。
            Console.WriteLineを(P1の==のP2)。
            Console.WriteLineを(p1.Equals(P2))。


            人物P3 =新しい人( "JIA")。
            人P4 = P3;
            Console.WriteLineを(P3の==のP4)。
            Console.WriteLineを(p3.Equals(P4))。

            Console.ReadLine();
        }
    }
}

なぜ答えが真真真真偽真偽偽であります


値型をスタックメモリに格納されているため(以下スタックと称する)、および保存されたスタックアドレスで参照型の変数は、それ自体がヒープに格納されている型の変数を参照します。
  「==」:比較動作は同じである2つの変数、すなわちスタックが示される変数への参照の内容と同じである、スタックに格納されたアドレスと同じである二つの変数の値です。
  「等しい」:2つの変数が操作は、同じオブジェクトへの参照であるということである、ヒープの内容が同じであるかどうかを示します。
    文字列は、参照型、C#言語、(等号()メソッドを含む)文字列オブジェクトの多くのオーバーロードされたメソッドの特殊なタイプであるので、値型として文字列オブジェクトのようです。
    したがって、上記の例では、第1の出力ペア、二つの文字列と文字列の比較は、Bに等しいです。
    スタックの内容が同じではないこと、それは等しくないので、2つの異なるオブジェクトのメモリ内の出力対象G = Aと被写体H = B、第二の対、用。等しい(複数すぎる)ようにスティングを用いるg.equals(h)は()メソッドに等しいです。このような修飾のための文字列AとBの場合:
        ;文字列=「AA」
        =「AA」列B、
2つの比較器の次に、gおよびhは等しいです。システムは、文字列B、bにちょうど「AA」のポイントのためにメモリを割り当てていないためです。そう点AとBは、(メモリのこの最適化された割り当ての場合)同じ文字列です。
P1とP2のためだけでなく、2つの異なるオブジェクトのメモリでは、メモリのアドレスは確かに同じではないので、p1は== p2は偽を返し、そしてP1およびP2のでP1ように、別のオブジェクトへの参照です。等号(P2)はfalseを返します。
P3およびP4、P4 = P3、P3オブジェクトへの参照は、P4、P3に割り当てられ、P4は同じオブジェクトへの参照であるため、両者が比較的trueを返します。

おすすめ

転載: www.cnblogs.com/zwj-199306231519/p/11619513.html