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

สมาชิกแบบมีนิพจน์เป็นตัวลำตัว

เขียนคุณสมบัติและเมธอดให้กระชับ

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

ไวยากรณ์ที่กระชับยิ่งขึ้น

ไวยากรณ์แบบนิพจน์ใช้ => เพื่อกำหนดสมาชิกด้วยนิพจน์เดียว แทนที่เนื้อหาภายใน { ... } แบบเต็ม ทำให้สมาชิกสั้น ๆ กระชับและอ่านง่าย

using System;

class Greeter
{
    public string Hello() => "Hi there!";
}

class Program
{
    static void Main()
    {
        var g = new Greeter();
        Console.WriteLine(g.Hello());
    }
}

เมธอดแบบนิพจน์

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

using System;

class MathHelper
{
    public int Square(int x) => x * x;
    public int Add(int a, int b) => a + b;
}

class Program
{
    static void Main()
    {
        var m = new MathHelper();
        Console.WriteLine(m.Square(6));
        Console.WriteLine(m.Add(3, 4));
    }
}

พร็อพเพอร์ตีอ่านได้อย่างเดียวแบบนิพจน์

พร็อพเพอร์ตีอ่านได้อย่างเดียวแบบคำนวณค่าสามารถใช้ => แทน get { return ...; } ได้

using System;

class Rectangle
{
    public double Width { get; set; }
    public double Height { get; set; }
    public double Area => Width * Height;
}

class Program
{
    static void Main()
    {
        var r = new Rectangle { Width = 4, Height = 5 };
        Console.WriteLine("Area: " + r.Area);
    }
}

get และ set แบบนิพจน์

คุณยังสามารถกำหนดเนื้อหาแบบนิพจน์ให้ตัวเข้าถึง get และ set แต่ละตัวได้ ซึ่งมีประโยชน์เมื่อใช้ร่วมกับฟิลด์สำรอง

using System;

class Person
{
    private string _name;
    public string Name
    {
        get => _name;
        set => _name = value.Trim();
    }
}

class Program
{
    static void Main()
    {
        var p = new Person();
        p.Name = "  Niki  ";
        Console.WriteLine("[" + p.Name + "]");
    }
}

การส่งคืนสตริงที่คำนวณ

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

using System;

class Customer
{
    public string First { get; set; }
    public string Last { get; set; }
    public string Display => First + " " + Last;
}

class Program
{
    static void Main()
    {
        var c = new Customer { First = "Ada", Last = "Lovelace" };
        Console.WriteLine(c.Display);
    }
}

นิพจน์แบบมีเงื่อนไข

นิพจน์เดียวสามารถมีตัวดำเนินการเงื่อนไข (แบบสามส่วน) ได้ ทำให้ตรรกะการแยกแขนงอยู่ในบรรทัดเดียว

using System;

class Account
{
    public decimal Balance { get; set; }
    public string Status => Balance >= 0 ? "OK" : "Overdrawn";
}

class Program
{
    static void Main()
    {
        var a = new Account { Balance = -20m };
        Console.WriteLine(a.Status);
    }
}

เมธอดแบบนิพจน์ที่ไม่ส่งคืนค่า

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

using System;

class Logger
{
    public void Log(string msg) => Console.WriteLine("[LOG] " + msg);
}

class Program
{
    static void Main()
    {
        var log = new Logger();
        log.Log("Started");
    }
}

ตัวสร้างแบบนิพจน์

ตัวสร้างที่มีการกำหนดค่าเพียงรายการเดียวก็สามารถใช้ไวยากรณ์ลูกศรได้เช่นกัน

using System;

class Point
{
    public int X { get; }
    public Point(int x) => X = x;
}

class Program
{
    static void Main()
    {
        var p = new Point(7);
        Console.WriteLine("X = " + p.X);
    }
}

เมื่อไม่ควรใช้ NOT

เนื้อหาแบบนิพจน์ใช้ได้เฉพาะกับนิพจน์เดียวเท่านั้น หากต้องใช้หลายคำสั่ง การวนซ้ำ หรือแขนงการตรวจสอบ ให้ใช้เนื้อหาแบบบล็อกตามปกติแทน

using System;

class Calculator
{
    // Single expression -> arrow is fine
    public int Triple(int n) => n * 3;

    // Multiple statements -> use a block
    public int SumTo(int n)
    {
        int total = 0;
        for (int i = 1; i <= n; i++) total += i;
        return total;
    }
}

class Program
{
    static void Main()
    {
        var c = new Calculator();
        Console.WriteLine(c.Triple(4));
        Console.WriteLine(c.SumTo(5));
    }
}

การรวมหลายรูปแบบไว้ในคลาสเดียว

คลาสขนาดเล็กสามารถใช้ไวยากรณ์ลูกศรกับสมาชิกเกือบทุกตัวได้ ซึ่งช่วยลดโค้ดซ้ำซากลงอย่างมาก

using System;

class Temperature
{
    public double Celsius { get; set; }
    public double Fahrenheit => Celsius * 9 / 5 + 32;
    public double Kelvin => Celsius + 273.15;
    public override string ToString() => Celsius + "C";
}

class Program
{
    static void Main()
    {
        var t = new Temperature { Celsius = 25 };
        Console.WriteLine(t + " = " + t.Fahrenheit + "F = " + t.Kelvin + "K");
    }
}

การประกอบทุกอย่างเข้าด้วยกัน

ใช้สมาชิกแบบนิพจน์เพื่อให้ตัวอ่านค่าอย่างง่าย ตัวช่วย และเมธอดแบบบรรทัดเดียวสะอาดตา ส่วนเนื้อหาแบบบล็อกควรสงวนไว้สำหรับตรรกะที่ซับซ้อนจริง ๆ

using System;

class Order
{
    public int Quantity { get; set; }
    public decimal UnitPrice { get; set; }
    public decimal Total => Quantity * UnitPrice;
    public bool IsLarge => Quantity > 10;
}

class Program
{
    static void Main()
    {
        var o = new Order { Quantity = 12, UnitPrice = 9.99m };
        Console.WriteLine("Total: " + o.Total + ", Large: " + o.IsLarge);
    }
}

ตรวจสอบความเข้าใจ

ทดสอบความเข้าใจของคุณเกี่ยวกับสมาชิกแบบนิพจน์

สรุปทบทวน

สมาชิกแบบนิพจน์ใช้ => เพื่อกำหนดสมาชิกด้วยนิพจน์เดียว ใช้ได้กับเมธอด พร็อพเพอร์ตีอ่านได้อย่างเดียว ตัวเข้าถึง get/set แต่ละตัว และแม้แต่ตัวสร้าง ใช้รูปแบบนี้กับโค้ดบรรทัดเดียวที่กระชับ และเปลี่ยนเป็นเนื้อหาแบบบล็อกเมื่อจำเป็นต้องใช้หลายคำสั่ง

using System;

class Demo
{
    public int N { get; set; }
    public int Doubled => N * 2;
    public string Label() => "N is " + N;
}

class Program
{
    static void Main()
    {
        var d = new Demo { N = 9 };
        Console.WriteLine(d.Label() + ", doubled = " + d.Doubled);
    }
}

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

บทเรียน “สมาชิกแบบมีนิพจน์เป็นตัวลำตัว” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “สมาชิกแบบมีนิพจน์เป็นตัวลำตัว”

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

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

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

บทเรียน “สมาชิกแบบมีนิพจน์เป็นตัวลำตัว” ใช้เวลานานแค่ไหน

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

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

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

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

  1. คุณสมบัติที่สร้างตัวเข้าถึงอัตโนมัติ
  2. คุณสมบัติเต็มรูปแบบพร้อมฟิลด์สำรอง
  3. สมาชิกแบบมีนิพจน์เป็นตัวลำตัว
  4. ตัวทำดัชนี
← กลับไปที่ C# Academy