متغير ديناميكي في C #؟
-
16-09-2019 - |
سؤال
هل من الممكن استخدام متغير ديناميكي (غير متأكد من التسمية) في C #؟
في PHP، أستطيع أن أفعل
$var_1 = "2";
$var_2 = "this is variable 2";
$test = ${"var_".$var_1};
echo $test;
output: this is variable 2;
هل يمكننا القيام بذلك في C #؟
المحلول
في C #، أنت تستخدم قواميس لربط القيم مع سلاسل.
نصائح أخرى
لا، أساسا. لا يضمن التحويل البرمجي أن متغيرات الطريقة موجودة (في شكلها كما هو مكتوب)، أو مع أسماء ...
إذا كانت الحقول (مثيل أو ثابت)، فيمكنك استخدام الانعكاس للحصول على القيم؛ ولكن ليس طريقة المتغيرات. على ما تريد، ربما استخدام القاموس كبديل؟
var vars = new Dictionary<string,object>();
vars["var_1"] = "2";
vars["var_2"] = "this is variable 2";
Console.WriteLine(vars["var_" + vars["var_1"]]);
لست متأكدا مما إذا كان هذا يعمل مع المتغيرات المحلية (وعلى الأرجح أنه لا يتم تخزينه كهدوء كهارس)، ولكن يمكنك الوصول إلى خصائص الفصل من خلال التفكير.
إذا كان لديك var
هو حقل فئة، ثم يمكنك استخدام الثابت GetField
طريقة من الفصل Type
للحصول على معلومات ميدانية، مثل قيمتها الحالية.
أنت لا تبحث عن صفائف بسيطة؟
string[] myArray = new string[2];
myArray[0] = "2";
myArray[1] = "this is variable 2"
القاموس الآخر هو الطريق للذهاب.