سؤال

لا يبدو أن الإجراء يدعم سلسلة params [] كمعامل لذلك كتبت

delegate void WriteFn(string s, params string[] ls);

لدي هذه الوظيفة

void blah(WriteFn Write, string fmt, params string[] a)

الآن أود أن أكتب وظيفة ولكن لا يمكنني تحديد بناء الجملة. انها شيء مثل

{
    var sw = ...
    blah(new WriteFn(s, ls) { sw.write(s, ls); }, fmt, a);
    //not what i want to do but close enough. remember sw isnt a param in WriteFn

كيف أكتب هذا؟

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

المحلول

سؤالك غير واضح. هل نفترض أن نخمن ذلك sw هو StreamWriter؟ إذا كان الأمر كذلك ، يبدو أن هذا سيعمل:

blah((s, ls) => sw.Write(s, ls), fmt, a);

نصائح أخرى

أعتقد أنه لا يمكنك القيام بذلك لأن قوائم الوسيطة المتغيرة هي ليس متوافق مع الأساليب المجهولة ، وفقا ل MSDN.

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