SocketException: ErrorCode vs. SocketErrorCode

本文关键字:SocketErrorCode vs ErrorCode SocketException | 更新日期: 2023-09-27 18:10:08

ErrorCode和SocketErrorCode总是相同的值,但表示为不同的类型吗?

SocketException类描述给了它们几乎相同的描述,但我没有看到任何明确的说明它们是相同的值。

SocketErrorCode似乎更有用,因为它是一个枚举,您可以编写更漂亮的代码,如:

if(se.SocketErrorCode == SocketError.Interrupted)

而不是:

if (se.ErrorCode != 10004)

if (se.ErrorCode != (int)SocketError.Interrupted)

SocketException: ErrorCode vs. SocketErrorCode

是的,它们完全一样。

查看源代码:

public override int ErrorCode {
    //
    // the base class returns the HResult with this property
    // we need the Win32 Error Code, hence the override.
    //
    get {
        return NativeErrorCode;
    }
}
public SocketError SocketErrorCode {
    //
    // the base class returns the HResult with this property
    // we need the Win32 Error Code, hence the override.
    //
    get {
        return (SocketError)NativeErrorCode;
    }
}