Identifiers
By Nuttanicha Wengwilardpaisarn 650710076
Identifiers คือ?
Identifiers หรือเรียกอีกอย่างว่า Names คือ สตริงที่ใช้ในการระบุสิ่งต่าง ๆ (entity) ให้กับโปรแกรม เช่น ชื่อคลาส ชื่อตัวแปร หรือชื่อฟังก์ชัน เป็นต้น
Identifier Rules
Identifier Rules ในแต่ละภาษาโปรแกรมก็จะมีกฎในการตั้งชื่อที่หลักการคล้ายกัน แต่รายละเอียดแตกต่างกัน โดยภาษา C# ต้องเป็นไปตามกฎดังต่อไปนี้
ตัวอักษร (characters) ที่สามารถใช้ได้ คือ ตัวอักษรและตัวเลขทั้งหมด [(A-Z), (a-z), (0-9)] รวมไปถึงสัญลักษณ์พิเศษ '_' (underscore)
ตัวอย่าง
MAX_SIZE
myBirthday
_tempToday
total_price
ต้องไม่ขึ้นต้นด้วยตัวเลข ([0-9])
ตัวอย่าง
Score12
A1B2C3
ต้องไม่มีช่องว่าง (white spaces)
ตัวอย่าง
My Birthday (ไม่ถูกต้อง เพราะมีช่องว่าง)
MyBirthday (ถูกต้อง เพราะไม่มีช่องว่าง)
ใช้คำสงวน (reserved words) หรือคำสำคัญ (keywords) ไม่ได้ นอกจากจะใช้สัญลักษณ์ '@' นำหน้า
ตัวอย่าง
as (ไม่ถูกต้อง เพราะเป็น keyword)
@as (ถูกต้อง เพราะใช้ '@' นำหน้า keyword )
อนุญาตให้ใช้ตัวอักษร Unicode ได้
ตัวอย่าง
ผู้ใช้
ค่า_Pi
คำนวณคะแนนสอบ()
ต้องระมัดระวังในการใช้ตัวพิมพ์เล็ก, ตัวพิมพ์ใหญ่ (Case Sensitive)
ตัวอย่าง
Variable
variable
ถือว่าเป็นตัวแปรคนละตัวกัน
ต้องมีความยาวไม่เกิน 512 ตัวอักษร
ห้ามมีสัญลักษณ์ '_' (underscore) ติดกัน 2 ตัว
ตัวอย่าง
__intPrice (ไม่ถูกต้อง เพราะมีการใช้สัญลักษณ์ '_' ติดกัน 2 ตัว)
intPrice (ถูกต้อง เพราะมีสัญลักษณ์ '' แค่ 1 ตัว)
Naming conventions (การตั้งชื่อ)
นอกจาก Identifiers Rules แล้ว ยังมี Naming conventions ที่ใช้ API ใน .NET ด้วย โดยทั่วไปในภาษา C# จะใช้ PascalCase สำหรับ type names, namespaces, public members ทั้งหมด และ ทีม dotnet/docs ใช้กฎการตั้งชื่อดังต่อไปนี้ที่ได้รับการยอมรับจาก ทีมการเขียนโค้ดของ .NET Runtime
ชื่อของ Interface ต้องเริ่มต้นด้วยตัว I พิมพ์ใหญ่
ชนิดของ Attribute จะต้องตามด้วย Attribute ด้านหลังด้วย
ชนิดของ Enum
non-flags คือ ต้องใช้ collection เพื่อเก็บค่า เพราะไม่รองรับการเก็บค่าหลายค่าในตัวแปรเดียว ทำให้ต้องใช้หน่วยความจำมากขึ้น
flags คือ รวมค่าหลายค่าในตัวแปรเดียว โดยการใช้ Bitwise เช่น AND, OR, NOT
Identifier ห้ามมีสัญลักษณ์ '_' (underscore) ติดกัน 2 ตัว
ใช้ชื่อที่มีความหมาย หรือสื่อความหมายชัดเจน สำหรับตัวแปร, เมธอด และคลาส
ควรใช้ชื่อที่ชัดเจนมากกว่าชื่อที่กระชับแต่ไม่ชัดเจน
ใช้ PascalCase สำหรับชื่อคลาส และชื่อเมธอด
PascalCase คือ การตั้งชื่อให้ตัวอักษรตัวแรกของแต่ละคำเป็นตัวพิมพ์ใหญ่
ใช้ camelCase สำหรับพารามิเตอร์
camelCase คือ การตั้งชื่อให้ตัวอักษรตัวแรกของคำแรกเป็นตัวพิมพ์เล็ก และตัวอักษรตัวแรกของคำถัดไปเป็นตัวพิมพ์ใหญ่
ใช้ PascalCase สำหรับชื่อคงที่ และค่าคงที่
ฟิลด์แบบ Private ต้องเริ่มต้นด้วยสัญลักษณ์ '_' (underscore)
ฟิลด์แบบ Static ต้องเริ่มด้วย s_
ไม่ควรใช้ตัวย่อหรืออักษรย่อในชื่อ ให้ใช้ชื่อที่สื่อความหมายชัดเจน นอกจากจะเป็นคำย่อที่ได้รับการยอมรับเป็นวงกว้างหรือรู้จักกันโดยทั่วไป
การใช้ namespces ที่มีความหมายชัดเจน โดยใช้ reverse domain name notation สำหรับจัดระเบียบโค้ด
เลือกชื่อ Assembly ที่แสดงให้เห็นถึงวัตุประสงค์หลัก
ไม่ควรตั้งชื่อที่มีตัวอักษรเพียงตัวเดียว ให้ใช้ชื่อที่ชัดเจน
ยกเว้นในกรณีของ loop ง่าย ๆ
เปรียบเทียบ Identifiers ในภาษา C#, Java, C, Python
Identifiers Rules
เริ่มต้นชื่อ
สามารถใช้ตัวอักษร (A-Z, a-z) หรือสัญลักษณ์ '_' , '$’
สามารถใช้ตัวอักษร (A-Z, a-z) หรือสัญลักษณ์ '_' , '$
สามารถใช้ตัวอักษร (A-Z, a-z) หรือสัญลักษณ์ '_'
สามารถใช้ตัวอักษร (A-Z, a-z) หรือสัญลักษณ์ '_’
ตัวเลขนำหน้า
❌
❌
❌
❌
ตามด้วยอักษร
✅
✅
✅
✅
ตามด้วยตัวเลข (0-9)
✅
✅
✅
✅
ใช้สัญลักษณ์ ‘_’
ใช้ได้ทั้งนำหน้าและตาม
ใช้ได้ทั้งนำหน้าและตาม
ใช้ได้ทั้งนำหน้าและตาม
ใช้ได้ทั้งนำหน้าและตาม
ใช้สัญลักษณ์ ‘$’
ใช้ได้ทั้งนำหน้าและตาม (แต่ไม่แนะนำ)
ใช้ได้ทั้งนำหน้าและตาม (แต่ไม่แนะนำ)
❌
❌
การแยกตัวพิมพ์ใหญ่, ตัวพิมพ์เล็ก
✅ (case-sensitive)
✅ (case-sensitive)
✅ (case-sensitive)
✅ (case-sensitive)
คำสำคัญ (keyword)
ใช้ไม่ได้
ใช้ไม่ได้
ใช้ไม่ได้
ใช้ไม่ได้
ความยาว
ไม่จำกัด
ไม่จำกัด
ไม่จำกัด (แต่ไม่ควรยาวเกินไป)
ไม่จำกัด
รูปแบบการตั้งชื่อ
camelCase/
PascalCase
camelCase
underscore
snake_case
ตัวอย่าง code
C#
มีการใช้ camelCase, PascalCase ในชื่อ และใช้สัญลักษณ์ ‘_’ นำหน้าชื่อ
Java
มีการใช้ camelCase ในชื่อ และใช้สัญลักษณ์ ‘$’ , ‘_’ นำหน้าชื่อ
C
มีการใช้สัญลักษณ์ ‘_’ ในชื่อ และนำหน้าชื่อ
Python
มีการใช้ snake_case และใช้สัญลักษณ์ ‘_’ ในชื่อและนำหน้าชื่อ
Slide
Clip
แหล่งอ้างอิง
C#
Java
C
Python
Last updated