* 저번에 본 봐와 같이 ==(IL : op_Equality)에는 12개의 메서드가 사용되지만
* Equals 매서드는 2 가지만 사용되더군요.
* 따라서 문자열 비교할 때는 Equals메서드를 사용해 비교하세요.
using System;
namespace EqualsVs__
{
/// <summary>
/// Class1에 대한 요약 설명입니다.
/// </summary>
class Class1
{
/// <summary>
/// 해당 응용 프로그램의 주 진입점입니다.
/// </summary>
[STAThread]
static void Main(string[] args)
{
string strCompared = "문자열";
//IL_000c: call bool [mscorlib]System.String::op_Equality(string, string)
//사용 메서드 수 : 12개
//시간 : 7453.4
if (strCompared == "문자열")
Console.WriteLine("True");
// IL_0023: callvirt instance bool [mscorlib]System.String::Equals(string)
//사용 메서드 수 : 2개
//시간 : 37.9
if (strCompared.Equals("문자열"))
Console.WriteLine("True");
}
}
}
덧붙여서.. int,double... 의 실수와 연관있는형은 ==가 훨빠릅니다. 단 스트링비교는 반드시 equal 로 하시는 습관을 들이십시요. 얼마안된다 안된다 생각하실수도 있겠지만.. 저거 하나가 여러게 모이면 확연히 표가 납니다...
- 출처 : KNUG (한국 닷넷 사용자 모임; Korea .NET User Group)
http://www.devpia.com/Forum/BoardView.aspx?no=46109&ref=46109&forumname=CSHARP_QA
댓글 없음:
댓글 쓰기