C# Academy · บทเรียน

Nullable ในการคำนวณ

ทำความเข้าใจว่า null แพร่ผ่านการคำนวณเลขคณิตอย่างไร

บทเรียน 4 จาก 413 ขั้นตอน

Nullable ในการคำนวณ เป็นบทเรียน C# Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C# Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน

ตัวดำเนินการแบบยกชนิด

C# ยกตัวดำเนินการทางคณิตศาสตร์และการเปรียบเทียบให้ทำงานกับชนิดที่เป็นค่าว่างได้ ตัวดำเนินการอย่าง + จะมีรูปแบบที่รองรับค่าว่างได้โดยอัตโนมัติ

using System;

class Program {
    static void Main() {
        int? a = 5;
        int? b = 3;
        Console.WriteLine(a + b);
    }
}

ค่าว่างส่งต่อผ่านการคำนวณทางคณิตศาสตร์

หากตัวถูกดำเนินการใดก็ตามในนิพจน์คณิตศาสตร์แบบยกชนิดเป็นค่าว่าง ผลลัพธ์จะเป็นค่าว่าง

using System;

class Program {
    static void Main() {
        int? a = 5;
        int? b = null;
        int? sum = a + b;
        Console.WriteLine(sum.HasValue);
    }
}

การแสดงผลลัพธ์ที่เป็นค่าว่าง

ผลลัพธ์ทางคณิตศาสตร์ที่เป็นค่าว่างจะแสดงเป็นสตริงว่าง ซึ่งสอดคล้องกับวิธีแสดงค่าของชนิดที่เป็นค่าว่างได้

using System;

class Program {
    static void Main() {
        int? a = null;
        Console.WriteLine("Result: [" + (a * 2) + "]");
    }
}

การผสมชนิดที่เป็นค่าว่างได้กับชนิดปกติ

คุณสามารถใช้ int และ int? ร่วมกันในการคำนวณได้ โดย int จะถูกยกระดับเป็นชนิดที่เป็นค่าว่างได้ และผลลัพธ์ก็จะเป็นชนิดที่เป็นค่าว่างได้

using System;

class Program {
    static void Main() {
        int? a = 10;
        int b = 4;
        int? result = a - b;
        Console.WriteLine(result);
    }
}

การเปรียบเทียบแบบยกชนิด

การเปรียบเทียบค่าที่เป็นค่าว่างได้ก็ถูกยกชนิดเช่นกัน หากด้านใดด้านหนึ่งเป็นค่าว่าง การเปรียบเทียบลำดับอย่าง < จะคืนค่าเท็จ

using System;

class Program {
    static void Main() {
        int? a = null;
        int? b = 5;
        Console.WriteLine(a < b);
        Console.WriteLine(a > b);
    }
}

ความเท่ากันกับค่าว่าง

ต่างจากการเปรียบเทียบลำดับ การตรวจสอบความเท่ากันมีการกำหนดไว้อย่างชัดเจน: ค่าว่างสองค่าถือว่าเท่ากัน และค่าว่างไม่เท่ากับตัวเลขใด ๆ

using System;

class Program {
    static void Main() {
        int? a = null;
        int? b = null;
        Console.WriteLine(a == b);
        Console.WriteLine(a == 0);
    }
}

การใช้ ?? ร่วมกับคณิตศาสตร์

ใช้ ?? แทนค่าว่างด้วยตัวเลขที่ปลอดภัยก่อนคำนวณ เพื่อให้ผลลัพธ์ไม่เป็นค่าว่าง

using System;

class Program {
    static void Main() {
        int? a = null;
        int total = (a ?? 0) + 100;
        Console.WriteLine(total);
    }
}

การป้องกันการหาร

ใช้การตรวจสอบ HasValue ร่วมกับการคำนวณ เพื่อหลีกเลี่ยงทั้งค่าว่างและการหารด้วยศูนย์

using System;

class Program {
    static void Main() {
        int? a = 20, b = 4;
        if (a.HasValue && b.HasValue && b.Value != 0)
            Console.WriteLine(a.Value / b.Value);
    }
}

การหาผลรวมข้อมูลที่เป็นค่าว่างได้

เมื่อหาผลรวมข้อมูลที่อาจมีค่าว่าง ให้ตัดสินใจว่าจะข้ามค่าว่างไป หรือถือว่าค่าว่างเป็นศูนย์

using System;

class Program {
    static void Main() {
        int?[] data = { 5, null, 10, null, 2 };
        int total = 0;
        foreach (var x in data)
            total += x ?? 0;
        Console.WriteLine(total);
    }
}

บูลีนที่เป็นค่าว่างได้ในตรรกะ

bool? มีส่วนร่วมในตรรกะแบบยกชนิด: true | null เป็นจริง, false & null เป็นเท็จ และกรณีอื่น ๆ เป็นค่าว่าง

using System;

class Program {
    static void Main() {
        bool? a = null;
        bool? b = true;
        Console.WriteLine(a | b);
    }
}

การแปลงผลลัพธ์เป็นค่าปกติ

หลังการคำนวณที่ให้ผลเป็นชนิดที่เป็นค่าว่างได้ ให้ใช้ ?? หรือ GetValueOrDefault เพื่อให้ได้ค่าปกติสำหรับการแสดงผล

using System;

class Program {
    static void Main() {
        int? a = 6, b = 7;
        int product = (a * b) ?? 0;
        Console.WriteLine(product);
    }
}

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ทดสอบความรู้เกี่ยวกับการคำนวณกับชนิดที่เป็นค่าว่างได้

สรุปทบทวน

C# ยกตัวดำเนินการทางคณิตศาสตร์ การเปรียบเทียบ และตรรกะให้ใช้กับชนิดที่เป็นค่าว่างได้ ตัวถูกดำเนินการที่เป็นค่าว่างในการคำนวณจะทำให้ผลลัพธ์เป็นค่าว่าง และการเปรียบเทียบลำดับกับค่าว่างจะคืนค่าเท็จ ในขณะที่การตรวจสอบความเท่ากันมีการกำหนดไว้อย่างชัดเจน

ใช้ ?? หรือ GetValueOrDefault เพื่อแทนค่าที่ปลอดภัยก่อนหรือหลังการคำนวณ และใช้ HasValue ตรวจสอบเมื่อจำเป็น

เริ่มต้นได้ฟรี

เรียนรู้ C# ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
93
บทเรียน
346

คำถามที่พบบ่อย

บทเรียน “Nullable ในการคำนวณ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “Nullable ในการคำนวณ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C# Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “Nullable ในการคำนวณ”

ทำความเข้าใจว่า null แพร่ผ่านการคำนวณเลขคณิตอย่างไร คุณปฏิบัติ C# Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C# Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน C# Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “Nullable ในการคำนวณ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน C# Academy นี้ได้ไหม

ได้ บทเรียน C# Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. แนะนำชนิดค่าที่เป็น Nullable
  2. คุณสมบัติ HasValue และ Value
  3. ตัวดำเนินการรวมค่าเมื่อเป็น Null
  4. Nullable ในการคำนวณ
← กลับไปที่ C# Academy