Computer >> Máy Tính >  >> Lập trình >> C#

Làm thế nào để phân tích cú pháp một chuỗi thành một int nullable trong C #?


C # cung cấp kiểu dữ liệu đặc biệt, kiểu nullable, mà bạn có thể gán phạm vi giá trị bình thường cũng như giá trị null.

C # 2.0 đã giới thiệu các kiểu nullable cho phép bạn gán giá trị null cho các biến kiểu giá trị. Bạn có thể khai báo kiểu nullable bằng cách sử dụng Nullable trong đó T là một kiểu.

  • Chỉ có thể sử dụng kiểu vô hiệu với các kiểu giá trị.

  • Thuộc tính Value sẽ ném ra một lỗi không hợp lệ nếu giá trị là null; nếu không nó sẽ trả về giá trị.

  • Thuộc tính HasValue trả về true nếu biến chứa một giá trị hoặc false nếu nó là giá trị rỗng.

  • Bạn chỉ có thể sử dụng toán tử ==và! =Với kiểu nullable. Để so sánh khác, hãy sử dụng lớp tĩnh Nullable.

  • Không cho phép các kiểu nullable lồng nhau. Nullable > i; sẽ báo lỗi thời gian biên dịch.

Ví dụ 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;
   }
}

Đầu ra

123

Khi Null được chuyển cho phương thức mở rộng, nó không in ra bất kỳ giá trị nào

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;
   }
}

Đầu ra