C\#문자 가 비어 있다 고 판단 하 는 6 가지 방법의 효율 실측 대비

5489 단어 C#판 가름문자
C\#에서 상당히 풍부 한 방법 이나 속성 을 제공 하여 한 글자 가 비어 있 는 지 여 부 를 판단 하 는데 자주 사용 하 는 방법 은 다음 과 같은 6 가지 가 있다.
1. strTest== ""
2. strTest.Equals("")
3. strTest== string.Empty
4. strTest.Equals(string.Empty)
5. strTest.Length == 0
6. string.IsNullOrEmpty(strTest)
상기 6 가지 방법의 효율 에 대해 직관 적 인 느낌 을 가지 기 위해 저 는 다음 과 같은 테스트 코드 를 작 성 했 습 니 다.

using System;

namespace StrTest
{
  class Program
  {
    //  3                  6        
    public static string strTest01 = "";
    public static string strTest02 = string.Empty;
    public static string strTest03 = "0123456789";

    public static DateTime start, end; //             
    public static TimeSpan ts;    //         

    //********************** strTest  6     *****************************
    public static void Test(string strTest)
    {
      //string == ""
      start = DateTime.Now;
      for (int counter = 0; counter <= 100000000; counter++)
      {
        if (strTest == "")
        {
        }
      }
      end = DateTime.Now;
      ts = end - start;
      Console.WriteLine("string == /"/"       " + ts.TotalSeconds + "  ");

      //string.Equals("")
      start = DateTime.Now;
      for (int counter = 0; counter <= 100000000; counter++)
      {
        if (strTest.Equals(""))
        {
        }
      }
      end = DateTime.Now;
      ts = end - start;
      Console.WriteLine("string.Equals(/"/")       " + ts.TotalSeconds + "  ");

      //string == stirng.Empty
      start = DateTime.Now;
      for (int counter = 0; counter <= 100000000; counter++)
      {
        if (strTest == string.Empty)
        {
        }
      }
      end = DateTime.Now;
      ts = end - start;
      Console.WriteLine("string == string.Empty       " + ts.TotalSeconds + "  ");

      //string.Equals(string.Empty)
      start = DateTime.Now;
      for (int counter = 0; counter <= 100000000; counter++)
      {
        if (strTest.Equals(string.Empty))
        {
        }
      }
      end = DateTime.Now;
      ts = end - start;
      Console.WriteLine("string.Equals(string.Empty)       " + ts.TotalSeconds + "  ");

      //string.Length == 0
      start = DateTime.Now;
      for (int counter = 0; counter <= 100000000; counter++)
      {
        if (strTest.Length == 0)
        {
        }
      }
      end = DateTime.Now;
      ts = end - start;
      Console.WriteLine("string.Length == 0       " + ts.TotalSeconds + "  ");

      //string.IsNullOrEmpty(string)
      start = DateTime.Now;
      for (int counter = 0; counter <= 100000000; counter++)
      {
        if (string.IsNullOrEmpty(strTest))
        {
        }
      }
      end = DateTime.Now;
      ts = end - start;
      Console.WriteLine("string.IsNullOrEmpty(string)       " + ts.TotalSeconds + "  " + "/n");
    }

    static void Main(string[] args)
    {
      Console.WriteLine("=======================================");
      Console.WriteLine("strTest = /"/"  5     ");     
      Console.WriteLine("=======================================");

      Test(strTest01);

      Console.WriteLine("=======================================");
      Console.WriteLine("strTest = string.Emtpy  5     "); 
      Console.WriteLine("=======================================");

      Test(strTest02);

      Console.WriteLine("=======================================");
      Console.WriteLine("strTest = /"0123456789/"  5     "); 
      Console.WriteLine("=======================================");

      Test(strTest03);

      Console.ReadLine();  //          :        
    }
  }
}
나 는 꺼 질 수 있 는 소프트웨어 를 모두 꺼 버 렸 다.  가능 한 한 시스템 영향 차단  그리고 6 가지 방법 을 모두 1 억 번 운행 시 켰 습 니 다.
첫 번 째 캡 처:
第一次测试结果
두 번 째 캡 처: 
第二次测试结果
이상 에서 알 수 있 듯 이 문자열 은 세 가지 상황 에서 string.Length==0 의 효율 이 가장 높다.
총결산
1.strTest=="추천 하지 않 습 니 다."값 이 빈 문자열"인 문자열 변수 만 판단 할 수 있 고 효율 이 낮 습 니 다.
2.strTest.Equals(")는 추천 하지 않 습 니 다.같은 1.
3.strTest==string.Empty 는 추천 하지 않 습 니 다.'값 이 null'인 문자열 변수 만 판단 할 수 있 고 효율 이 낮 습 니 다.
4.strTest.Equals(string.Empty)는 추천 하지 않 습 니 다.같은 3.
5. strTest.Length == 0  이런 방식 은 저 는 별로 좋아 하지 않 습 니 다.사용 하 는 것 을 추천 하지 않 습 니 다.자신의 실제 테스트 에서 이러한 판단 방식 의 실행 효율 이 가장 높다 는 것 을 증명 할 수 있 지만,이 를 사용 하려 면 문자열 이 null 이 아니 라 null 이 라면 이상 을 보고 해 야 합 니 다.
6. string.IsNullOrEmpty(strTest)  이런 방법 은 내 가 가장 즐겨 사용 하 는 것 이다.이것 은'빈 문자열 변수'를 성능 적 으로 판단 할 뿐만 아니 라'빈 문자열 의 변수'도 판단 할 수 있 을 뿐만 아니 라 코드 를 간결 하고 아름 답 게 할 수 있다.판단 의 효율 도 낮은 편 은 아니다.

좋은 웹페이지 즐겨찾기