Identifier ในภาษา C# Identifier คือ “ชื่อ” ที่ใช้ในการตั้งชื่อสิ่งต่าง ๆ ภายในโปรแกรม C# เช่น ตัวแปร (variable), คลาส (class), เมธอด (method), พารามิเตอร์ (parameter), เนมสเปซ (namespace) และ อื่น ๆ ซึ่งใช้ในการอ้างอิง (reference) หรือเรียกใช้งานวัตถุเหล่านั้นในภายหลัง

พูดให้เข้าใจง่าย ๆ Identifier คือ “ชื่อที่เราตั้งขึ้นเอง” เพื่อให้คอมไพเลอร์เข้าใจว่าแต่ละค่าหรือโครงสร้างในโปรแกรมหมายถึงอะไร

ตัวอย่างการใช้งาน Identifier ใน C#

C#
namespace MyConsoleApp  // ← Identifier ของ Namespace
{
    public class Student    // ← Identifier ของ Class
    {
        public string name; // ← Identifier ของตัวแปร
        public int age;     // ← Identifier ของตัวแปร

        public void DisplayInfo()  // ← Identifier ของ Method
        {
            Console.WriteLine($"ชื่อนักเรียน: {name}, อายุ: {age}");
        }


    }
    internal class Program
    {
        static void Main(string[] args)
        {
            Student s1 = new Student();  // ← Identifier ของ Object
            s1.name = "อนันต์";
            s1.age = 16;
            s1.DisplayInfo();
        }
    }
}
  • namespace MyConsoleApp ประกาศ Namespace ชื่อ MyConsoleApp เพื่อจัดกลุ่มคลาสที่เกี่ยวข้อง
  • class Student สร้างคลาสชื่อ Student เพื่อเป็นต้นแบบของวัตถุ
  • public string name; public int age; ประกาศตัวแปร (name และ age) เพื่อเก็บข้อมูลของนักเรียน
  • public void DisplayInfo() เมธอดแสดงข้อมูลนักเรียน
  • Student s1 = new Student(); สร้างอ็อบเจกต์ชื่อ s1 จากคลาส Student
  • s1.name = "อนันต์"; s1.age = 16; กำหนดค่าให้ฟิลด์
  • s1.DisplayInfo(); เรียกเมธอดแสดงข้อมูล

กฎการตั้งชื่อ Identifier ในภาษา C#

เพื่อให้โค้ดสามารถคอมไพล์ได้และอ่านเข้าใจง่าย ควรยึดหลักต่อไปนี้

กฎพื้นฐาน (บังคับ)

  1. ต้องขึ้นต้นด้วย ตัวอักษร (A–Z, a–z) หรือเครื่องหมายขีดล่าง _
  2. ตัวต่อไปสามารถเป็น ตัวอักษร, ตัวเลข (0–9) หรือ _ ได้
  3. ห้ามมีช่องว่างหรือสัญลักษณ์พิเศษ เช่น @, #, %, !, - ฯลฯ
  4. ห้ามใช้ คีย์เวิร์ดของ C# เช่น class, int, for, namespace เป็นชื่อ Identifier
  5. ภาษา C# มีการแยกตัวพิมพ์ใหญ่–เล็ก (เช่น Name และ name ถือเป็นคนละตัว)

ตัวอย่างที่ถูกและผิดสำหรับการตั้งชื่อ Identifier ในภาษา C#

ตัวอย่างถูกต้องไหมคำอธิบาย
studentNameขึ้นต้นด้วยตัวอักษร
_scoreใช้ _ ขึ้นต้นได้
1stStudentห้ามขึ้นต้นด้วยตัวเลข
classเป็นคีย์เวิร์ดของ C#
student nameมีช่องว่าง
total$amountมีเครื่องหมาย $ ซึ่งไม่อนุญาต

การตั้งชื่อให้เหมาะกับมาตรฐาน (C# Naming Conventions)

นอกจากกฎบังคับแล้ว ควรยึดมาตรฐานการตั้งชื่อเพื่อให้โค้ดอ่านง่ายและดูเป็นมืออาชีพ ดังนี้

ชนิดรูปแบบตัวอย่าง
ตัวแปร (variable)camelCasestudentName, totalScore
พารามิเตอร์ (parameter)camelCaseuserAge, maxLength
เมธอด (method)PascalCaseCalculateTotal(), ShowResult()
คลาส (class)PascalCaseStudentInfo, OrderService
ค่าคงที่ (constant)UPPER_CASEMAX_STUDENTS, PI_VALUE

ใช้ @ เพื่อตั้งชื่อที่ชนกับคีย์เวิร์ด

ในบางกรณีเราสามารถใช้เครื่องหมาย @ หน้า Identifier เพื่อหลีกเลี่ยงการชนกับคีย์เวิร์ดของ C# ได้ เช่น

C#
int @class = 5;
Console.WriteLine(@class);
  • @class คือ Identifier ที่อนุญาตให้ใช้ชื่อว่า “class” ได้ เพราะมี @ นำหน้า
  • ผลลัพธ์จะพิมพ์ค่า 5 ออกมาโดยไม่มีข้อผิดพลาด

หมายเหตุ: แม้จะทำได้ แต่ไม่แนะนำให้ใช้บ่อย เพราะทำให้โค้ดอ่านยาก นอกจากนั้นอาจจะงงเองด้วย

ข้อควรระวังเพิ่มเติมในการตั้งชื่อ Identifier

  1. หลีกเลี่ยงชื่อย่อที่ไม่สื่อความหมาย เช่น x1, x2, tmp ในโค้ดยาว ควรใช้ชื่อที่มีความหมายในตัวเอง
  2. อย่าตั้งชื่อซ้ำกับชื่อคลาสหรือเนมสเปซใน .NET เช่น String, Console เพราะอาจทำให้เกิดความสับสน
  3. ระวังการใช้ตัวพิมพ์ใหญ่–เล็ก เช่น DataCount กับ datacount เป็นคนละตัว
  4. ใช้ชื่อที่สะท้อน “หน้าที่” มากกว่า “ลักษณะ” เช่น GetTotalPrice() ดีกว่า DoWork1()

Identifier คือพื้นฐานสำคัญที่นักพัฒนา C# ทุกคนต้องเข้าใจ เพราะส่งผลต่อความถูกต้องของโปรแกรมและความอ่านง่ายของโค้ด การตั้งชื่อที่ดีช่วยให้โค้ดมีความสื่อความหมาย ลดความสับสน และช่วยให้ทีมทำงานร่วมกันได้อย่างมีประสิทธิภาพ

อย่ามองว่า “ชื่อ” เป็นเรื่องเล็ก เพราะในโลกของ C# ชื่อที่ดี คือ “โค้ดที่พูดได้ด้วยตัวเอง”

แชร์เรื่องนี้