1. 程式人生 > >對比C#中==與equal方法

對比C#中==與equal方法

 C#中equal與==的區別 收藏 
對於值型別,如果物件的值相等,則相等運算子 (==) 返回 true,否則返回 false。對於string 以外的引用型別,如果兩個物件引用同一個物件,則 == 返回 true。對於 string 型別,== 比較字串的值。
==操作比較的是兩個變數的值是否相等。
equals()方法比較的是兩個物件的內容是否一致.==也就是比較引用型別是否是對同一個物件的引用。

例子:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string a = new string(new char[] { 'h', 'e', 'l', 'l', 'o' });
            string b = new string(new char[] { 'h', 'e', 'l', 'l', 'o' });
            Console.WriteLine(a == b);
            Console.WriteLine(a.Equals(b));

            object g = a;
            object h = b;
            Console.WriteLine(g == h);
            Console.WriteLine(g.Equals(h));

            Person p1 = new Person("jia");
            Person p2 = new Person("jia");
            Console.WriteLine(p1 == p2);
            Console.WriteLine(p1.Equals(p2));


            Person p3 = new Person("jia");
            Person p4 = p3;
            Console.WriteLine(p3 == p4);
            Console.WriteLine(p3.Equals(p4));

            Console.ReadLine();
        }
    }
}


輸出
true,true,false,true,false,false,true,true。

附錄:

C#的四種基本資料型別

字元型別 char ,儲存用‘'(單引號)括起來的一個字元,例如:

 char sex='男';//儲存性別

字串型別 string ,儲存用“”(雙引號)括起來的一串字元,例如:

 string address="北京市宣武區牛街北口";//儲存地址

整數型別 int ,儲存整數,例如:

  int age=23;//儲存年齡

雙精度浮點型 double ,儲存小數,例如:

 double salary=7991.63;//儲存工資

以上四種是最常用的資料型別。

需要注意的是,某種型別的變數,只能儲存這種型別的資料,否則,可能會出錯。