Func 如何对带有out参数的方法使用。

XBodhi. 2013-08-06 11:58:08
如题:
如下方法如何使用Func<string,string,string>


public string GetTestFunc(out string username,out string password)
{
username = "qiao";
password = "123456";
return "testFunc`3[string,string,string]";
}


...全文
556 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
从LZ的代码看,没有输入参数,却有两个输出一个返回,定义一个对象可能更合适 没必要死盯着委托不放
夜色镇歌 2013-08-06
  • 打赏
  • 举报
回复
func貌似没有~~ 要自己定义个了
threenewbee 2013-08-06
  • 打赏
  • 举报
回复
只能自己定义一个委托了。 delegate string MyFunc(string a, out string b); 或者,传递一个引用的参数,比如 Func<string, Tuple<string>, string> 事实上因为Tuple<string>是一个引用,所以你可以把string带出来。
XBodhi. 2013-08-06
  • 打赏
  • 举报
回复
那看样我用 反射自己封装来只能。
XBodhi. 2013-08-06
  • 打赏
  • 举报
回复
在线等。有没有能解决这个问题的。还可以加分哦。
cheng2005 2013-08-06
  • 打赏
  • 举报
回复
没法用,除非你自己定义
XBodhi. 2013-08-06
  • 打赏
  • 举报
回复
问题已经解决。谢谢各位了,经过测试没有问题,配合 MEF的导入成功。 代码如下:
 /// <summary>
    /// 委托描述:封装一个具有三个输入参数和二个输出参数并返回 TResult 参数指定的类型值的方法。
    /// </summary>
    /// <typeparam name="T1">此委托封装的方法的第一个参数类型。</typeparam>
    /// <typeparam name="T2">此委托封装的方法的第二个参数类型。</typeparam>
    /// <typeparam name="T3">此委托封装的方法的第三个参数类型。</typeparam>
    /// <typeparam name="T4">此委托封装的方法的第四个参数类型。</typeparam>
    /// <typeparam name="T5">此委托封装的方法的第五个参数类型。</typeparam>
    /// <typeparam name="TResult">此委托封装的方法的返回值类型。</typeparam>
    /// <param name="t1">此委托封装的方法的第一个参数。</param>
    /// <param name="t2">此委托封装的方法的第二个参数。</param>
    /// <param name="t3">此委托封装的方法的第三个参数。</param>
    /// <param name="t4">此委托封装的方法的第四个参数。</param>
    /// <param name="t5">此委托封装的方法的第五个参数。</param>
    /// <returns>此委托封装的方法的返回值。</returns>
    public delegate TResult FuncEx<in T1, in T2, in T3, T4, T5, out TResult>(T1 t1, T2 t2, T3 t3, out T4 t4, out T5 t5);
那位大神说下 平方差的逆变和斜变。
闲云之然 2013-08-06
  • 打赏
  • 举报
回复
Func<>声明中不能使用ref,out这些参数修饰符。虽然最后一个参数是out TResult,但这个是表示函数的返回值的。楼主你的需求只能用4楼说的delegate来做了。 另外,4楼说的用Tuple带出string似乎是不行的,因为Tuple对象创建之后是只读的,这样就无法在传入函数内部之后再被修改成想要带出的值。

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧