سؤال

لقد بدأت العمل مع C# مؤخرًا ، ولاحظت أن الاتفاقية تبدو أن المتغيرات تبدأ بحرف رأس المال إلى جانب الأساليب.

هل هذه هي اللغة الوحيدة التي تفعل هذا ولماذا؟ على سبيل المثال:

Page Page = new Page();
Page.Action(); 

بلغات أخرى ، سترى بدلاً من ذلك:

Page page = new Page();
page.action();

هناك أمثلة أخرى على هذا الأمر مربكة لأنني عملت كثيرًا مع UML و Ruby و C ++ و Java.

سؤالي هو ، لماذا يقوم C# بذلك بهذه الطريقة عندما لا تفعل اللغات الأخرى؟

يحرر

يلاحظ مستخدمو الفائض الآخرون الآخرون أن C# لا يتبع هذا الاتفاقية ، وكان هذا مجرد خطأ من جانبي.

هل كانت مفيدة؟

المحلول

في الواقع ، لا: الاتفاقية في C# مخصصة لأسماء (وحقل) Camelcared ، وطرق Pascalcase:

Page page = new Page();
page.Action();

نصائح أخرى

لا ، هذا هو رمز C# غير قياسي إلى حد ما. إرشادات تصميم إطار عمل .NET في القسم 2.6 توصي باستخدام غلاف الجمل لأسماء المتغيرات المحلية.

استخدام الأعضاء العامين PascalCase, وأعضاء من القطاع الخاص camelCase.

أعتقد أن هذا يجعل الأمر أكثر وضوحًا الأساليب التي تدعم فئة مقابل الأساليب التي تحدد الفصل.

public class Foo
{
    private Bar bar;
    public Bar Bar { get; set; }

    public void DoFoo()
    {
        makeFoo();
    }

    private void makeFoo()
    {
    }
}

كل مجموعة من اتفاقيات C# التي كتبتها أو استخدمتها ستحدد حالة الإبل للمتغيرات ، لذلك:

Page page = new Page();
MyClass myClass = new MyClass();

لست متأكدًا من المكان الذي رأيت فيه حالة Pascal المستخدمة ، لكنها بالتأكيد ليست شيئًا متأصلًا أو معيارًا لـ C#.

لا تبدأ المتغيرات في C# عادةً بحرف كبير (على الرغم من أن هذا الأمر يعود بوضوح إلى تنفيذ المطور الخاص). ما ربما تكون مرتبكًا عنه هو مفهوم أ ملكية. يتم استخدام الخصائص في C# بشكل نحلي مثل المتغيرات (حيث يمكن استردادها أو تعيينها ، بدلاً من تنفيذها فقط مثل وظيفة) ، ولكن يمكنها تغليف منطق العمل على كلا العمليتين.

للإجابة على جزء أوسع من سؤالك ، فإن كل من الخصائص والأساليب/الوظائف تبدأ عادةً بحرف كبير وفقًا ل إرشادات Microsoft.

كان Pascalcase اتفاقية في Microsoft قبل فترة طويلة .NET. (في واجهة برمجة تطبيقات Win32 وما إلى ذلك)

الاتفاقية أيضا من المنطقي استخدام في بيئة واحدة. .NET كونها بيئة شاملة من تلقاء نفسها ، و Microsoft-the-Company ، فلا جدوى من تبني شخص آخر.

أيضًا ، أشك بشدة في أن UML لديه اتفاقية تسمية أو حتى فكرة وجود UML لها اتفاقية التسمية أمر منطقي. نماذج UML برنامجك ، ويجب أن تتبع اتفاقية هذا البرنامج.

يمكنك معرفة الكثير حول الاتفاقيات التي يجب اعتمادها باستخدام الأداة التالية.

FXCOP: http://msdn.microsoft.com/en-us/library/bb429476(vs.80).aspx

Stylecop: http://code.msdn.microsoft.com/sourceanalysis

عام = pascalcase ، أنا فقط أميل إلى استخدام Camelcase للحقول الخاصة ، وحجج المعلمات.

اقرا هذا معيار الترميز رغم ذلك يمكن البحث بسهولة على Google ، وليس مكانًا سيئًا للبدء.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top