كيف يمكنني تنفيذ هذا المندوب؟
-
22-09-2019 - |
سؤال
لا يبدو أن الإجراء يدعم سلسلة 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.
لا تنتمي إلى StackOverflow