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

Named Parameters ใน C# คืออะไร

Named Parameters คืออะไร?

อนุญาตให้ระบุ Argument ด้วย ชื่อ Parameter** แทนที่จะต้องเรียงตามลำดับ**

  • เพิ่ม Readability ของโค้ด
  • สลับลำดับ Argument ได้
  • ชื่อ Parameter ต้องตรงกับ Definition

Syntax

MethodName(parameterName: value);

ตัวอย่างโค้ด

using System;

namespace DemoApplication
{
    class Demo
    {
        static void Main(string[] args)
        {
            // เรียงตามปกติ
            NamedParameterFunction("James", "Bond");
            
            // ใช้ Named Parameters
            NamedParameterFunction(firstName: "Mark", lastName: "Wood");
            
            // สลับลำดับได้!
            NamedParameterFunction(lastName: "Federer", firstName: "Roger");
            
            // ผสมได้: Positional ก่อน Named ต่อ (C# 7.2+)
            NamedParameterFunction("John", lastName: "Doe");
            
            Console.ReadLine();
        }
        
        public static void NamedParameterFunction(string firstName, string lastName)
        {
            Console.WriteLine($"FullName: {firstName} {lastName}");
        }
    }
}

Output

FullName: James Bond
FullName: Mark Wood
FullName: Roger Federer
FullName: John Doe

ข้อจำกัดและกฎ

  • Positional Arguments ต้องอยู่ก่อน Named Arguments (C# 7.2+ ผ่อนผ่อนบ้าง)
  • ไม่สามารถใช้ Named Parameter กับ params array ได้
  • Parameter Name ต้องตรงกับ Method Signature
  • Optional Parameters ใช้ร่วมกับ Named Parameters ได้ดีมาก

กรณีใช้งานจริง (Use Cases)

1. Method ที่มี Parameter เยอะ

// ไม่ชัดเจนว่า true/false คืออะไร
CreateUser("John", "john@email.com", true, false, true);

// ชัดเจนมาก
CreateUser(
    name: "John", 
    email: "john@email.com", 
    isActive: true, 
    sendWelcomeEmail: false, 
    isAdmin: true
);

2. Optional Parameters

void SendEmail(string to, string subject, string body = "", bool isHtml = false, int priority = 1);

// เรียกแค่บาง Parameter
SendEmail(to: "a@b.com", subject: "Hello", isHtml: true);