我不能从文档告诉一下这两者之间的区别是:差分功能
Socket.EndReceive Method (IAsyncResult, SocketError)
Socket.EndReceive Method (IAsyncResult)
请问而第二第一个输出误差一个投掷?
编辑:
更具体地讲:如果抛出一个错误的输出参数将是伪造的。这表明SocketError版本不会抛出错误。但它说它会抛出类似类的错误。这是否意味着它抛出所有相同的错误?也许有错误发生但不会被抛出。也许你需要使用这个函数来获取所有错误。我是否需要两组错误处理 - 一个用于throw和一个用于输出参数?一种功能是否比其他功能更受欢迎?
这就是如何实现信息.net core https://github.com/dotnet/corefx/blob/2117bae3a6c9736033e6d1659821ff3a1069920b/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs#L3722。并在窗口中.net https://referencesource.microsoft.com/#System/net/System/Net/Sockets/Socket.cs,4485 – zerkms
_“我无法从文档告诉有什么区别”_ - 为什么不?具体而言是什么,这是文件似乎不清楚。请注意,两者都抛出相同的异常,包括'SocketException'。所以它不可能是不会抛出异常的。从文档中,似乎很清楚,一种方法只是提供了一种便捷的机制来直接检索错误代码。就我个人而言,我认为这是多余的,因为如果错误代码是不成功的,并且代码很容易从异常对象中检索到,你总是会得到一个异常。但是它就是这样啊。 –
对不起,请参阅编辑。 – johnnycrash