Identifier ในภาษา C# Identifier คือ “ชื่อ” ที่ใช้ในการตั้งชื่อสิ่งต่าง ๆ ภายในโปรแกรม C# เช่น ตัวแปร (variable), คลาส (class), เมธอด (method), พารามิเตอร์ (parameter), เนมสเปซ (namespace) และ อื่น ๆ ซึ่งใช้ในการอ้างอิง (reference) หรือเรียกใช้งานวัตถุเหล่านั้นในภายหลัง
พูดให้เข้าใจง่าย ๆ Identifier คือ “ชื่อที่เราตั้งขึ้นเอง” เพื่อให้คอมไพเลอร์เข้าใจว่าแต่ละค่าหรือโครงสร้างในโปรแกรมหมายถึงอะไร
ตัวอย่างการใช้งาน Identifier ใน 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จากคลาส Students1.name = "อนันต์"; s1.age = 16;กำหนดค่าให้ฟิลด์s1.DisplayInfo();เรียกเมธอดแสดงข้อมูล
กฎการตั้งชื่อ Identifier ในภาษา C#
เพื่อให้โค้ดสามารถคอมไพล์ได้และอ่านเข้าใจง่าย ควรยึดหลักต่อไปนี้
กฎพื้นฐาน (บังคับ)
- ต้องขึ้นต้นด้วย ตัวอักษร (A–Z, a–z) หรือเครื่องหมายขีดล่าง
_ - ตัวต่อไปสามารถเป็น ตัวอักษร, ตัวเลข (0–9) หรือ
_ได้ - ห้ามมีช่องว่างหรือสัญลักษณ์พิเศษ เช่น
@, #, %, !, -ฯลฯ - ห้ามใช้ คีย์เวิร์ดของ C# เช่น
class,int,for,namespaceเป็นชื่อ Identifier - ภาษา C# มีการแยกตัวพิมพ์ใหญ่–เล็ก (เช่น
Nameและnameถือเป็นคนละตัว)
ตัวอย่างที่ถูกและผิดสำหรับการตั้งชื่อ Identifier ในภาษา C#
| ตัวอย่าง | ถูกต้องไหม | คำอธิบาย |
|---|---|---|
studentName | ✅ | ขึ้นต้นด้วยตัวอักษร |
_score | ✅ | ใช้ _ ขึ้นต้นได้ |
1stStudent | ❌ | ห้ามขึ้นต้นด้วยตัวเลข |
class | ❌ | เป็นคีย์เวิร์ดของ C# |
student name | ❌ | มีช่องว่าง |
total$amount | ❌ | มีเครื่องหมาย $ ซึ่งไม่อนุญาต |
การตั้งชื่อให้เหมาะกับมาตรฐาน (C# Naming Conventions)
นอกจากกฎบังคับแล้ว ควรยึดมาตรฐานการตั้งชื่อเพื่อให้โค้ดอ่านง่ายและดูเป็นมืออาชีพ ดังนี้
| ชนิด | รูปแบบ | ตัวอย่าง |
|---|---|---|
| ตัวแปร (variable) | camelCase | studentName, totalScore |
| พารามิเตอร์ (parameter) | camelCase | userAge, maxLength |
| เมธอด (method) | PascalCase | CalculateTotal(), ShowResult() |
| คลาส (class) | PascalCase | StudentInfo, OrderService |
| ค่าคงที่ (constant) | UPPER_CASE | MAX_STUDENTS, PI_VALUE |
ใช้ @ เพื่อตั้งชื่อที่ชนกับคีย์เวิร์ด
ในบางกรณีเราสามารถใช้เครื่องหมาย @ หน้า Identifier เพื่อหลีกเลี่ยงการชนกับคีย์เวิร์ดของ C# ได้ เช่น
int @class = 5;
Console.WriteLine(@class);@classคือ Identifier ที่อนุญาตให้ใช้ชื่อว่า “class” ได้ เพราะมี@นำหน้า- ผลลัพธ์จะพิมพ์ค่า
5ออกมาโดยไม่มีข้อผิดพลาด
หมายเหตุ: แม้จะทำได้ แต่ไม่แนะนำให้ใช้บ่อย เพราะทำให้โค้ดอ่านยาก นอกจากนั้นอาจจะงงเองด้วย
ข้อควรระวังเพิ่มเติมในการตั้งชื่อ Identifier
- หลีกเลี่ยงชื่อย่อที่ไม่สื่อความหมาย เช่น
x1, x2, tmpในโค้ดยาว ควรใช้ชื่อที่มีความหมายในตัวเอง - อย่าตั้งชื่อซ้ำกับชื่อคลาสหรือเนมสเปซใน .NET เช่น
String,Consoleเพราะอาจทำให้เกิดความสับสน - ระวังการใช้ตัวพิมพ์ใหญ่–เล็ก เช่น
DataCountกับdatacountเป็นคนละตัว - ใช้ชื่อที่สะท้อน “หน้าที่” มากกว่า “ลักษณะ” เช่น
GetTotalPrice()ดีกว่าDoWork1()
Identifier คือพื้นฐานสำคัญที่นักพัฒนา C# ทุกคนต้องเข้าใจ เพราะส่งผลต่อความถูกต้องของโปรแกรมและความอ่านง่ายของโค้ด การตั้งชื่อที่ดีช่วยให้โค้ดมีความสื่อความหมาย ลดความสับสน และช่วยให้ทีมทำงานร่วมกันได้อย่างมีประสิทธิภาพ
อย่ามองว่า “ชื่อ” เป็นเรื่องเล็ก เพราะในโลกของ C# ชื่อที่ดี คือ “โค้ดที่พูดได้ด้วยตัวเอง”
