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

เราจะคืนค่า null จากวิธีทั่วไปใน C # ได้อย่างไร


Generics ช่วยให้เราสามารถกำหนดคลาสที่มีตัวยึดตำแหน่งสำหรับประเภทของฟิลด์ เมธอด พารามิเตอร์ ฯลฯ Generics จะแทนที่ตัวยึดตำแหน่งเหล่านี้ด้วยประเภทเฉพาะบางประเภทในเวลารวบรวม ทั่วไปสามารถกำหนดได้โดยใช้วงเล็บมุม <> ข้อจำกัดหลักของการรวบรวมคือไม่มีการตรวจสอบประเภทที่มีประสิทธิภาพ ซึ่งหมายความว่าคุณสามารถใส่อ็อบเจ็กต์ใดๆ ลงในคอลเล็กชันได้ เนื่องจากคลาสทั้งหมดในภาษาการเขียนโปรแกรม C# ขยายจากคลาสพื้นฐานของอ็อบเจ็กต์

นอกจากนี้ เราไม่สามารถคืนค่า null จากวิธีทั่วไปเหมือนในวิธีปกติได้ ด้านล่างนี้คือข้อผิดพลาดที่วิธีการทั่วไปจะเกิดขึ้นหากเราพยายามคืนค่าเป็นโมฆะ

using System;
namespace DemoApplication {
   class Program {
      public static void Main() {
         Add(5, 5);
      }
      public static T Add<T>(T parameter1, T parameter2) {
         return null;
      }
   }
}

เราจะคืนค่า null จากวิธีทั่วไปใน C # ได้อย่างไร

ดังนั้น ในการคืนค่า null หรือค่าดีฟอลต์จากวิธีทั่วไป เราสามารถใช้ default() ได้ default(T) จะคืนค่าออบเจ็กต์เริ่มต้นของประเภทที่มีให้

ตัวอย่าง

using System;
namespace DemoApplication {
   class Program {
      public static void Main() {
         Add(5, 5);
         Console.ReadLine();
      }
      public static T Add<T>(T parameter1, T parameter2) {
         var defaultVal = default(T);
         Console.WriteLine(defaultVal);
         return defaultVal;
      }
   }
}

ผลลัพธ์

ผลลัพธ์ของรหัสคือ

0

ที่นี่เราจะเห็นว่ามีการส่งคืนค่าเริ่มต้นของจำนวนเต็ม 0