C# Equals() 대 ==
이 자습서에서는 C#의==
연산자와 Equals()
함수의 차이점과 유사점을 강조합니다.
C#에서==
연산자와Equals()
함수의 차이점
==
연산자는 C#의 비교 연산자입니다. ==
연산자는 두 피연산자의 참조 ID를 비교합니다. 반면에 Equals()
함수는 C#에서 두 문자열 변수의 내용을 비교합니다. 일반적으로 둘 다 두 값을 비교하는 데 사용됩니다. 그러나 시나리오에 따라 결과가 다를 수 있습니다. 다음 코드 예제는==
연산자와Equals()
함수가 모두 참인 시나리오를 보여줍니다.
using System;
namespace comparison {
class Program {
static void Main(string[] args) {
object var1 = "MMA";
object var2 = var1;
if (var1 == var2) {
Console.WriteLine("== is true");
}
if (var1.Equals(var2)) {
Console.WriteLine("Equals is true");
}
}
}
}
출력:
== is true
Equals is true
위의 코드에서var2 = var1
을 사용하여 객체 변수var2
를 초기화했습니다. 이는var1
및var2
모두 메모리에서 동일한 ID를 참조 함을 의미합니다. 따라서==
연산자는true
결과가됩니다. 둘 다 내부에 동일한 내용이 있으므로Equals()
함수도true
를 제공합니다.
이제==
연산자가false
를 제공하지만Equals()
함수가true
값을 반환하는 또 다른 시나리오를 보여줍니다. 이 시나리오는 아래 코드 예제에서 설명합니다.
using System;
namespace comparison {
class Program {
static void Main(string[] args) {
object var1 = "MMA";
char[] varc = { 'M', 'M', 'A' };
object var2 = new string(varc);
if (var1 == var2) {
Console.WriteLine("== is true");
}
if (var1.Equals(var2)) {
Console.WriteLine("Equals is true");
}
}
}
}
출력:
Equals is true
위의 코드에서 우리는 문자 배열varc
를 생성하고 문자열 변수의 생성자에varc
를 전달하여 객체 변수var2
로 변환했습니다. 이는var1
과var2
가 모두 메모리에서 서로 다른 ID를 가리킴을 의미합니다. ==
연산자는var1
및var2
의 참조 ID를 비교하므로false
를 반환합니다. 그러나Equals()
함수는var1
및var2
의 내용을 비교하기 때문에 true
를 반환합니다.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn