ฉันกำลังดูวิดีโอเกี่ยวกับ C # เกี่ยวกับตัวแปร ผู้เขียนประกาศตัวแปรภายในเมธอดและเขาตั้งชื่อดังนี้: string MyName = "James";
คำถามของฉันคือ:. อนุสัญญาใดแนะนำโดย. Net Framework มันเป็นปาสคาลท่อในตัวอย่างข้างต้นหรือเป็นกรณีอูฐ?
ฉันกำลังดูวิดีโอเกี่ยวกับ C # เกี่ยวกับตัวแปร ผู้เขียนประกาศตัวแปรภายในเมธอดและเขาตั้งชื่อดังนี้: string MyName = "James";
คำถามของฉันคือ:. อนุสัญญาใดแนะนำโดย. Net Framework มันเป็นปาสคาลท่อในตัวอย่างข้างต้นหรือเป็นกรณีอูฐ?
คำตอบ:
ฉันไม่คิดว่าจะมีอะไรที่เหมือนกับการประชุม 'เป็นทางการ' เท่าที่ฉันรู้ต่อไปนี้ถือว่าเป็นแนวปฏิบัติที่ดีโดยนักพัฒนา C # ที่มีประสบการณ์มากมาย:
PascalCase for public member variables (string MyName = "James")
camelCase for local variables (string myName = "James")
_leadingUnderscore for private member variables (string _myName = "James")
ด้วยวิธีการนี้เราสามารถแยกแยะความแตกต่างระหว่างตัวแปรในท้องถิ่นและสาธารณะและส่วนตัวโดยกรณีของจดหมายฉบับแรก
เช่นเดียวกับระเบียบการเข้ารหัสใด ๆ นี่ก็ขึ้นอยู่กับความชอบส่วนตัว ดังนั้นจึงไม่มีคำตอบที่แน่นอน เป้าหมายทั่วไปควรเก็บรหัสนั้นให้อ่านได้และเข้าใจได้มากที่สุด
PascalCase
ชาวบ้านที่ได้รับและสมาชิกภาคเอกชนที่ได้รับcamelCase
_leadingUnderscore
(aParameter: string)
'a': ฉันรู้ว่าพารามิเตอร์เป็นตัวแปรท้องถิ่นโดยเฉพาะอย่างยิ่งเมื่อส่งผ่านตามค่า แต่มักจะมีประโยชน์มากในการ "เห็น" ว่า var ถูกส่งผ่านเป็นพารามิเตอร์ มีอนุสัญญาดังกล่าวใน C # หรือไม่
private string _SomeString
ที่บอกพวกเขาด้วยการขีดเส้นใต้: คุณจะบอกว่าเป็นแบบแผนหรือไม่? (เพียงจุ่มนิ้วเท้าของฉันใน C # และสงสัยเกี่ยวกับสิ่งนี้)
อนุสัญญาการตั้งชื่อกรอบ. Net ( v4.5 , v1.1 ) นั้นไม่เชื่อเรื่องพระเจ้า พวกเขาไม่ได้ระบุมาตรฐานสำหรับการตั้งชื่อตัวแปรท้องถิ่น คุณจะต้องตัดสินใจเกี่ยวกับการประชุมของคุณเองสำหรับการตั้งชื่อเหล่านี้
ฉันใช้ camelCase เป็นการส่วนตัวและยกเลิกการเปลี่ยนแปลงตัวแปรสมาชิกจากชื่อพารามิเตอร์this
เมื่อจำเป็น แต่ขีดล่างชั้นนำ (เช่น_memberVariable
) ก็ใช้ได้เช่นกัน
this
เพื่อแยกความแตกต่างของตัวแปรท้องถิ่นจากฟิลด์ / คุณสมบัติ 5 ตัวอักษรเพิ่มเติมทุกครั้งที่ imho มากเกินไป