Nullable ในการคำนวณ
ทำความเข้าใจว่า null แพร่ผ่านการคำนวณเลขคณิตอย่างไร
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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- แนะนำชนิดค่าที่เป็น Nullable
- คุณสมบัติ HasValue และ Value
- ตัวดำเนินการรวมค่าเมื่อเป็น Null
- Nullable ในการคำนวณ