Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

จะแยกสตริงเป็น int ที่เป็นค่าว่างใน C # ได้อย่างไร?


C# ให้ชนิดข้อมูลพิเศษ ชนิดที่เป็นค่าว่าง ซึ่งคุณสามารถกำหนดช่วงของค่าปกติและค่าว่างได้

C # 2.0 แนะนำประเภท nullable ที่อนุญาตให้คุณกำหนด null ให้กับตัวแปรประเภทค่า คุณสามารถประกาศประเภท nullable ได้โดยใช้ Nullable โดยที่ T เป็นประเภท

  • ประเภท Nullable สามารถใช้ได้กับประเภทค่าเท่านั้น

  • คุณสมบัติ Value จะส่ง InvalidOperationException หากค่าเป็น null มิฉะนั้นจะคืนค่ากลับมา

  • คุณสมบัติ HasValue ส่งคืนค่า จริง หากตัวแปรมีค่า หรือเป็นเท็จ หากมีค่าเป็น null

  • คุณสามารถใช้ตัวดำเนินการ ==และ !=ที่มีประเภทเป็นค่าว่างได้เท่านั้น สำหรับการเปรียบเทียบอื่นๆ ให้ใช้คลาส Nullable static

  • ไม่อนุญาตให้ใช้ประเภท 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;
   }
}

ผลลัพธ์