0Pricing
C# Academy · บทเรียน

ค่าเทียบกับการอ้างอิง ลิเทอรัล การอนุมานด้วย var และ const/readonly

เรียนรู้ว่าชนิดค่าแตกต่างจากชนิดอ้างอิงอย่างไร ลิเทอรัลและส่วนต่อท้ายตัวเลขทำงานอย่างไร ควรใช้ var เมื่อใด และบทบาทของ const กับ readonly

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

เหตุใดชนิดข้อมูลจึงสำคัญ

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

ชนิดค่าเทียบกับชนิดอ้างอิง

ชนิดค่า: คัดลอกข้อมูลเมื่อกำหนดค่า เช่น int, bool และ struct ชนิดอ้างอิง: คัดลอกการอ้างอิง เช่น class, array และ string

  • ชนิดค่า: การเปลี่ยนแปลงภายในที่ปลอดภัยกว่า
  • ชนิดอ้างอิง: ใช้อัตลักษณ์ของออบเจ็กต์ร่วมกัน

ค่าลิเทอรัลและส่วนต่อท้าย

ค่าลิเทอรัลมีชนิดข้อมูล ใช้ส่วนต่อท้ายเพื่อความชัดเจน: f (float), m (decimal), L (long)

  • 3.14f → float
  • 10m → decimal (จำนวนเงิน)
  • 123L → long

var inference

var ช่วยให้คอมไพเลอร์อนุมานชนิดข้อมูลจากด้านขวาของการกำหนดค่า ควรใช้เมื่อชนิดข้อมูลชัดเจนจากบริบท มิฉะนั้นให้ระบุชนิดข้อมูลอย่างชัดเจน

const เทียบกับ readonly

const: ค่าคงที่ขณะคอมไพล์ ส่วน readonly: กำหนดค่าในตัวสร้างหรือตอนประกาศ

  • ใช้ const สำหรับค่าที่ไม่เปลี่ยนแปลง เช่น Pi
  • ใช้ readonly สำหรับค่าที่ทราบเมื่อโปรแกรมทำงาน

ชนิดข้อมูลในการใช้งานจริง

ดูพฤติกรรมของชนิดค่าและชนิดอ้างอิง ส่วนต่อท้ายของตัวเลข การอนุมานชนิดข้อมูลอย่างง่ายด้วย var และ const/readonly ในโปรแกรมขนาดเล็กหนึ่งโปรแกรม

using System;

// Value type (struct) copies by value
public struct PointS
{
  public int X;
  public int Y;
}

// Reference type (class) copies the reference
public class PointC
{
  public int X;
  public int Y;
}

// Readonly demo class
public class Config
{
  public readonly string Name;
  public Config(string name)
  {
    Name = name; // can set here
  }
}

public class Program
{
  // Compile-time constant
  private const double Pi = 3.14159;

  public static void Main(string[] args)
  {
    // 1) Value vs reference
    PointS a = new PointS { X = 1, Y = 2 };
    PointS b = a;         // copy value
    b.X = 99;
    Console.WriteLine("Value struct a.X = " + a.X); // 1 (unchanged)
    Console.WriteLine("Value struct b.X = " + b.X); // 99

    PointC ac = new PointC { X = 1, Y = 2 };
    PointC bc = ac;       // copy reference
    bc.X = 77;
    Console.WriteLine("Ref class ac.X = " + ac.X);  // 77 (same object)
    Console.WriteLine("Ref class bc.X = " + bc.X);  // 77

    // 2) Literals & suffixes
    float f = 3.14f;
    decimal price = 10m;
    long big = 123L;
    Console.WriteLine("f=" + f + " price=" + price + " big=" + big);

    // 3) var inference (type is obvious)
    var sum = a.X + a.Y; // int
    Console.WriteLine("sum=" + sum);

    // 4) const vs readonly
    Config cfg = new Config("Demo");
    Console.WriteLine("Pi=" + Pi + " Name=" + cfg.Name);
  }
}

คำจำกัดความของชนิดค่า

ตรวจสอบความเข้าใจอย่างรวดเร็ว: ข้อความใดอธิบายชนิดค่าได้ดีที่สุด

ทบทวน

ทบทวน: ชนิดค่าจะคัดลอกข้อมูล ส่วนชนิดอ้างอิงจะแชร์ออบเจ็กต์ ใช้ส่วนต่อท้ายสำหรับค่าลิเทอรัลตัวเลข ใช้ var เมื่อชนิดข้อมูลชัดเจน และเลือกใช้ const หรือ readonly ให้เหมาะสม

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

บทเรียน “ค่าเทียบกับการอ้างอิง ลิเทอรัล การอนุมานด้วย var และ const/readonly” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “ค่าเทียบกับการอ้างอิง ลิเทอรัล การอนุมานด้วย var และ const/readonly”

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

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

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

บทเรียน “ค่าเทียบกับการอ้างอิง ลิเทอรัล การอนุมานด้วย var และ const/readonly” ใช้เวลานานแค่ไหน

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

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

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

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

  1. ค่าเทียบกับการอ้างอิง ลิเทอรัล การอนุมานด้วย var และ const/readonly
  2. ตัวดำเนินการและนิพจน์: เลขคณิต การเปรียบเทียบ ตรรกะ
  3. การใช้งานส่วนต่อท้ายจริง การแปลงแบบแคสต์เทียบกับการแปลงค่า และการสร้างอ็อบเจกต์ใน C# 6
← กลับไปที่ C# Academy