Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C#에서 문자열을 nullable int로 구문 분석하는 방법은 무엇입니까?


C#은 null 값뿐만 아니라 일반 범위의 값을 할당할 수 있는 특수 데이터 유형인 nullable 유형을 제공합니다.

C# 2.0에는 값 형식 변수에 null을 할당할 수 있는 nullable 형식이 도입되었습니다. T가 유형인 경우 Nullable을 사용하여 nullable 유형을 선언할 수 있습니다.

  • Nullable 유형은 값 유형에만 사용할 수 있습니다.

  • Value 속성은 값이 null인 경우 InvalidOperationException을 발생시킵니다. 그렇지 않으면 값을 반환합니다.

  • HasValue 속성은 변수에 값이 포함되어 있으면 true를 반환하고 null이면 false를 반환합니다.

  • nullable 형식에는 ==및 !=연산자만 사용할 수 있습니다. 다른 비교를 위해 Nullable 정적 클래스를 사용하십시오.

  • 중첩된 nullable 형식은 허용되지 않습니다. Nullable> i; 컴파일 시간 오류가 발생합니다.

예시 1

static class Program{
   static void Main(string[] args){
      string s = "123";
      System.Console.WriteLine(s.ToNullableInt());
      Console.ReadLine();
   }
   static int? ToNullableInt(this string s){
      int i;
      if (int.TryParse(s, out i)) return i;
      return null;
   }
}

출력

123

Null이 확장 메서드에 전달되면 값이 인쇄되지 않습니다.

static class Program{
   static void Main(string[] args){
      string s = null;
      System.Console.WriteLine(s.ToNullableInt());
      Console.ReadLine();
   }
   static int? ToNullableInt(this string s){
      int i;
      if (int.TryParse(s, out i)) return i;
      return null;
   }
}

출력