我不能從文檔告訴一下這兩者之間的區別是:差分功能
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