سؤال
يمكن أن المتغيرات الديناميكية في C# 4.0 يكونوا أعضاء في فئة أو تمريرها إلى أو عاد من الأساليب ؟ فار من C# 3.0 لا ولكن أنا لم أر أي ذكر في أي مكان من ما إذا كان من الممكن أو لا مع ديناميكية.
نصائح أخرى
نعم.هناك فرق كبير بين var
و dynamic
.
var
يعني فقط "السماح مترجم نستنتج الحقيقي نوع المتغير".
dynamic
هو نوع المتغير - حتى في أي مكان يمكنك تحديد نوع, يمكنك تحديد dynamic
بدلا من ذلك, كما أفهمها.(أنا متأكد من أن هناك بعض الاستثناءات من هذا ولكن هذه هي الفكرة الأساسية.)
تحرير:كريس الجحر أول بلوق الدخول على dynamic
(هناك ثانية واحدة بالفعل ؛ نتوقع المزيد قريبا) يعطي مثالا على الدرجة التي يستخدم dynamic
في كل مكان.
وهذه التعليمات البرمجية المتكررة من كتاب "CLR عبر C #، 3 إد" يظهر ديناميكية في العمل:
using System;
using System.Dynamic;
static class DyanmicDemo
{
public static void Main() {
for(Int32 demo =0; demo < 2; demo++) {
dynamic arg = (demo == 0) ? (dynamic) 5 : (dynamic) "A";
dynamic result = Plus(arg);
M(result);
}
}
private static dynamic Plus(dynamic arg) { return arg + arg; }
private static void M(Int32 n) { Console.WriteLine("M(Int32): " + n); }
private static void M(String s) { Console.WriteLine("M(String): " + s); }
}
وعندما تنفيذ الرئيسي، أحصل على الإخراج التالية:
وM (Int32): 10
وM (سلسلة): AA