對比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;//儲存工資
以上四種是最常用的資料型別。
需要注意的是,某種型別的變數,只能儲存這種型別的資料,否則,可能會出錯。