هي المتغيرات المكتوبة ضمنيا الطريق إلى الأمام (C #)

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

  •  19-09-2019
  •  | 
  •  

سؤال

أنا أستخدم Stylecop لإعادة التجسيد في مشروع مكتوب أصلا ل .NET V2. لكنني منذ ذلك الحين ترقيت هذا المشروع لمدة 3.5 إطار.

يتم توصي Stylecop بأي تغيير الجزء الأكبر من المتغيرات المكتوبة صراحة مكتوبة ضمنيا على سبيل المثال:

سلسلة - فار

نوع قوي مخصص - فار

هل هذه هي الطريق إلى الأمام عند العمل مع مشروع .NET 3.5. يبدو غير عادي إعلان كل شيء كما var.

لا تتردد في تحديث عنوان السؤال إذا كان مصطلح بلدي خارج ...

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

المحلول

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

نصائح أخرى

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

StringBuilder stringBuilder = new StringBuilder();
var stringBuilder = new StringBuilder();

اى واحدة تفضل؟

الق نظرة على هذا

فار (C # مرجع) و

المتغيرات المحلية المكتوبة ضمنيا (دليل البرمجة C #)

يتم كتابة متغير محلي مكتوب ضمنيا تماما كما لو كنت قد أعلنت أن النوع بنفسك، ولكن التحويل البرمجي يحدد النوع.

أيضا إلقاء نظرة على استخدام فارغ الكلمة الرئيسية في C #

و C # النقاش: متى يجب عليك استخدام var؟

أعتقد أنه أكثر من اقتراح وينبغي النظر فيه، ولكن ليس بالضرورة نفذت بالكامل.

في حين أن الشخصية، أعتقد أن أفضل استخدام Var هو عندما يكون نوع الإعلان / الإرجاع واضحا، أي:

var temp = "Test me now";

مقابل

var temp = GetTestData();

كما أستمتع حقا بالقدرة على إعلان أنواع عامة مع رمز أقل:

    var test = new Dictionary<string,string>();

مقابل

    Dictionary<string, string> test = new Dictionary<string,string>();

var مهم جدا عند استخدام الأنواع المجهولة ...

var cees = from c in Customers select new { c.Name, c.Birthdate };

سوف تشير resharper لتغيير الكل إلى فار. للحصول على تعريفات واضحة مثل

var c = new Customer();

أحب استخدامه. بالنسبة لبعض دعوة API، قد أكتب النوع بشكل صريح:

Customer c = repository.Get(1);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top