- ふらっと C#,C♯,C#(初心者用) Part118 [転載禁止]©2ch.net
382 :デフォルトの名無しさん[sage]:2015/12/25(金) 04:39:44.37 ID:+55nFQ10 - 質問です。
「リファレンス(参照渡し)の引数を持つデリゲート」を引数とする、関数を作ろうとしています。 ─────────────────── public void Hoge(Action<string, out string> funcA) { string paramA = "auau"; funcA("hoge", paramA); Debug.Log(paramA); } Hoge( (param1, param2) => { param2 = param1 + param2; } ); > paramA = hogeauau ─────────────────── こんな感じの事がしたいのですが、エラーとなってしまいます。 MSDNを見ると下記のような記載があるのですが、実現方法はないのでしょうか。 > ラムダ式は、外側のメソッドの ref パラメーターまたは out パラメーターを直接取り込むことはできません。
| - ふらっと C#,C♯,C#(初心者用) Part118 [転載禁止]©2ch.net
387 :デフォルトの名無しさん[sage]:2015/12/25(金) 21:08:27.60 ID:+55nFQ10 - >>386
遅くなりましたが、ありがとうございます! 以下で動くことが確認できました。 ───────── // デリゲート準備 public delegate void RequestCallback(string wwwText, out string resultJson); public void RequestReal(string wwwText, out string resultJson) { resultJson = "{ \"content\" : \"" + wwwText + "\" }"; } // 使用先関数 public void Hoge(RequestCallback funcA, out string outStr) { string apiResult = "seikou sita kigasuru"; funcA(apiResult, out outStr); } // 呼び出し string result; RequestCallback req = RequestReal; Hoge(req, out result); Debug.Log(result); > { "content" : "seikou sita kigasuru" } > UnityEngine.Debug:Log(Object) ───────────────────
|
|