C # أي ما يعادل جاوة الطبقات الداخلية مجهول مع كتل ال init

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

سؤال

في جاوة، وأنا أحب استخدام بنيات مثل

List<String> list = new ArrayList<String>() {{add("foo");}};

هل هناك طريقة للقيام بذلك في 1 سطر في C #، أيضا؟

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

المحلول

وأعتقد أن ما تريده هو مهيئ مجموعة

List<string> list = new List<string>() { "foo" };
يجب أن تكون

وعناصر متعددة مفصولة بفواصل

List<string> list = new List<string>() { "foo","bar","bas"};

نصائح أخرى

وهذا ما يسمى <م> جمع مهيئ وانها جزء من C # 3.0.

وكذلك القوائم، يمكنك تهيئة مجموعات من أنواع أكثر تعقيدا، وطالما أنها تنفذ IEnumerable ووapproprate اضافة طرق كل عنصر في مهيئ مجموعة. على سبيل المثال، يمكنك استخدام الأسلوب Add(key, value) من Dictionary<TKey, TValue> مثل هذا:

var dict = new Dictionary<string, int> 
{ 
    {"first", 10 }, 
    {"second", 20 }
};

ومزيد من التفاصيل يمكن العثور عليها في الفصل 8 من C # في العمق، والتي يمكن تحميلها مجانا من الموقع مانينغ .

ويمكنك أن تفعل ذلك في .NET Framework 3.5 لتحديد قيمة العقارات:

List<string> list = new List<string> () { Property = Value, Property2 = Value2 };

وأو تهيئة صفيف:

List<string> list = new List<string> () { "value1", "value2" };

ولا يمكنك استدعاء أساليب بهذه الطريقة، ولكن.

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

هذا لديها تنسيق فقراء ولكن يبدو لتغطية ذلك

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