هل تُعتبر خصائص البادئة (Auto) دائمًا مع هذه الكلمة التي تعتبر ممارسة جيدة؟

StackOverflow https://stackoverflow.com/questions/2086125

سؤال

منذ أن اكتشفت خصائص السيارات ، أحاول استخدامها في كل مكان. قبل أن يكون هناك دائمًا عضو خاص لكل عقار كان لديّ سأستخدمه داخل الفصل. الآن يتم استبدال هذا بخاصية السيارات. أستخدم العقار داخل صفي بطرق أقوم عادةً باستخدام حقل الأعضاء العادي. المشكلة هي أن الخاصية تبدأ بكابيتول ، مما يجعلها تبدو غريبة بعض الشيء عند استخدامها بهذه الطريقة. لم أكن أمانع أن تبدأ الخصائص مع الكابيتول من قبل لأنها ستكون دائمًا وراء "نقطة". لقد وجدت نفسي الآن ببادلة جميع الخصائص التي أستخدمها داخليًا this., ، لتهدئة شعوري.

معضلي هي أنه قبل أن أكون دائمًا قليلاً ضد البادئة جميع استخدام الأعضاء الداخليين معهم this., ، ما لم "ضروري" (كما هو الحال في Setter أو مُنشئ). لذلك أنا أبحث عن رأي ثانٍ حول هذا الموضوع. هل هناك طريقة جيدة قياسية للقيام بذلك؟ هل يجب أن أتوقف عن الشكوى (لدي ميل إلى أن أكون "هومبر النملة" (التعبير الهولندي))؟

قبل:

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

    public Foo(Bar bar)
    {
        this.bar = bar;
    }

    public void DoStuff()
    {
        if(bar != null)
        {
            bar.DoMethod();
        }
    }
}

بعد:

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

    public Foo(Bar bar)
    {
        this.Bar = bar;
        // or
        Bar = bar;
    }

    public void DoStuff()
    {
        if(this.Bar != null)
        {
            this.Bar.DoMethod();
        }
        // or
        if(Bar != null)
        {
            Bar.DoMethod();
        }
    }
}

تحديث

يبدو أن الآراء تختلف ، على الرغم من أن المزيد من الناس يؤيدون البادئة مع this.. قبل خصائص السيارات ، كنت دائمًا ضد البادئة مع this. بدلا من في المُنشئين وفي المستوطنين (كما ذكرت من قبل). لكنني الآن لم أعد أعرف.

ملاحظة إضافية: حقيقة أنه من الشائع أيضًا تسمية الخاصية مثل الفصل (public Bar Bar { get; private set; }) أيضا يجعلني أميل نحو البادئة. في كل مرة أكتب Bar.DoMethod(), ، أشعر أنه يبدو وكأنه طريقة ثابتة. على الرغم من أن VS سوف يلون Bar إذا كانت طريقة ثابتة ولا يمكن أن يكون لديك طريقة ثابتة ومثيرة بنفس التوقيع. عندما يكون اللون واضحًا ، يكون من الواضح أنه طريقة ثابتة ، ولكن عندما لا يكون لونه غير واضح بنسبة 100 ٪ أنه ليس طريقة ثابتة. يمكنك على سبيل المثال فقط أن تفقد ملف using بيان ، ولكن أيضًا لمجرد أنني لست معتادًا على ربط اللون الذي لا يتم تلوينه بما إذا كانت مكالمة ثابتة أم لا. قبل أن أراها على الفور من خلال رسملة الرسالة الأولى في حالة عضو أو "نقطة" في حالة وجود عقار (على سبيل المثال "نقطة" بعد ذلك foo في (Foo)foo.Bar.DoMethod()).

(من الصعب اختيار "إجابة مقبولة" في الوقت الحالي)

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

المحلول

نعم ، هناك "طريقة قياسية للقيام بذلك": يعتبر الحرف الرأسمالي و Prefix ممارسة ترميز جيدة. إذا كنت تستخدم بعض الأدوات لاختبار الرمز الخاص بك للحصول على إرشادات الترميز مثل Resharper أو Microsoft الخاصة Stylecop, ، سيحذرك إذا لم تستخدم هذا المرجع ، أو إذا لم تبدأ عقاراتك برأس مال.

خصائصك واضحة للجمهور. يجب أن تبدأ أي ممتلكات عامة أو حقل أو طريقة برأس مال.

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

تحديث: بالطبع ، تختلف الآراء. أحب ضرب this. وبعد ذلك ، بعد النقطة ، رؤية الأعضاء فقط ، بدلاً من الرؤية الكل الكلمات الرئيسية عند فقط ضرب مساحة CTRL دون أي بادئة. هذا يساعدني. لكن في النهاية (اقتبس من هنا):

مهما كان رأيك ، فإن الشيء المهم هو أن جميع الأشخاص الذين يتعاونون عن كثب في المشروع يستخدمون نفس معايير التنسيق ، بغض النظر عن هذه المعايير.

المزيد من المراجع:
Microsoft على استخدام رسالة رأسمالية في أي اسم تقريبًا وفي الخصائص على وجه التحديد.
أكثر إرشادات هنا.

نصائح أخرى

أوصي بشدة بالاستخدامهذه.' حيثما كان ذلك ممكنا. إرشادات تصميم الإطار يوصي هذه الممارسة. يتيح لك معرفة النطاق من وجهة نظر قابلية القراءة ويساعدك على تجنب الأخطاء السخيفة التي قد يقوم برنامج التحويل البرمجي بالإبلاغ عن وقت الترجمة.

وأنا أوصي بشدة مطلقا باستخدام هذا لأنه يقلل فقط من الوضوح. إذا وجدت نفسك بالفعل في حالة تحتاج إلى ذلك لتجنب التصادم ، فإنني أوصي بإعادة تسمية أحد الحقول/الخصائص/المتغيرات.

المكان الوحيد الذي أجده مقبولًا هو أنه إذا كان جزءًا من واجهة برمجة التطبيقات المكشوفة علنًا حيث تتسبب إعادة تسمية في حدوث تغيير في الانهيار.

في المثال الأول ، bar المعلمة الظلال المعجمية bar حقل من المثيل. لذلك عليك استخدام this لعدم الغموض.

في المثال الثاني ، ليس لديك مثل هذا الغموض ، وبالتالي لا يحتاج إلى غموض (أي this). ومع ذلك ، لا يزال بإمكانك بادئة ذلك ، إذا كان هذا هو كوب الشاي الخاص بك. قون

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