如何调用下面的构造函数Func<如在SimplSocket(Func
本文关键字:Func SimplSocket 如在 System Sockets Socket IO 构造函数 调用 何调用 | 更新日期: 2023-09-27 18:16:07
我不熟悉这个API,但我试图创建一个新的构造函数,需要一个Func的参数,如下面的构造函数
所示public SimplSocket(System.Func<System.Net.Sockets.Socket> socketFunc,
int messageBufferSize,
int maximumConnections,
bool useNagleAlgorithm)
如何处理socketFunc
System.Func<System.Net.Sockets.Socket>
是一个所谓的委托。它们用于保存函数。在这种特殊情况下,委托只接受返回System.Net.Sockets.Socket
类型且没有参数的函数。例如:
你在某处定义了一个函数:
public System.Net.Sockets.Socket someFunction()
{
//whatever it does
}
然后你可以这样做:
var sock = new SimplSocket(someFunction, 1024,1,false);
如果你不想定义一个额外的函数,你可以使用lambda表达式直接表示函数:
var sock = new SimplSocket(() => new System.Net.Sockets.Socket(...), 1024,1,false);
构造函数本身可以使用委托socketFunc
调用给定的函数,并且它知道该函数将返回System.Net.Sockets.Socket
,但不知道使用哪个函数。它看起来就像这样:
var aSock = socketFunc();