كيفية تحديد الثوابت في Visual C# مثل #define في C؟
سؤال
في C يمكنك تعريف الثوابت مثل هذا
#define NUMBER 9
بحيث أينما ظهر الرقم في البرنامج يتم استبداله بالرقم 9.لكن Visual C# لا يفعل هذا.كيف يتم ذلك؟
المحلول
public const int NUMBER = 9;
وكنت بحاجة إلى وضعه في فئة في مكان ما، وسوف ClassName.NUMBER
استخدام
نصائح أخرى
وأنت لا تستطيع أن تفعل هذا في C #. استخدام const int
بدلا من ذلك.
static class Constants
{
public const int MIN_LENGTH = 5;
public const int MIN_WIDTH = 5;
public const int MIN_HEIGHT = 6;
}
// elsewhere
public CBox()
{
length = Constants.MIN_LENGTH;
width = Constants.MIN_WIDTH;
height = Constants.MIN_HEIGHT;
}
كيفية: تحديد الثوابت في C # على MSDN:
<اقتباس فقرة> في C # لالمعالج #define
التوجيه لا يمكن أن تستخدم لتحديد
الثوابت في الطريقة التي عادة
المستخدمة في C و C ++.
في لغة ج: #define
(على سبيل المثال#تعريف العداد 100)
في لغة التجميع: يساوي (على سبيل المثالعداد المعادلة 100)
بلغة #C: حسب مرجع msdn:انت تستخدم #define
لتحديد رمز.عند استخدام الرمز كتعبير تم تمريره إلى #if
التوجيه، سيتم تقييم التعبير إلى صحيح، كما يوضح المثال التالي:
# define DEBUG
ال #define
لا يمكن استخدام التوجيه للإعلان عن قيم ثابتة كما يحدث عادةً في C وC++.من الأفضل تعريف الثوابت في C# كأعضاء ثابتين في فئة أو بنية.إذا كان لديك العديد من هذه الثوابت، ففكر في إنشاء فئة "ثوابت" منفصلة للاحتفاظ بها.
في C #، في مكتبة MSDN، لدينا "CONST" الكلمة التي لا عمل الكلمة "تعريف #" في لغات أخرى.
و"... عندما يصادف المترجم معرف ثابت في C # شفرة المصدر (على سبيل المثال، أشهر)، فإنه يستبدل قيمة حرفية مباشرة إلى لغة وسيطة (IL) رمز أنها تنتج". ( https://msdn.microsoft.com/en-us/library/ms173119. ASPX )
وتهيئة الثوابت في وقت إعلان أنه ليس هناك أي تغيير عليها.
public const int cMonths = 12;