1
let test_smtp (smtp_server_address : string) (port : int) =
let hostEntry : IPHostEntry = Dns.GetHostEntry(smtp_server_address)
let endPoint : IPEndPoint = new IPEndPoint (hostEntry.AddressList[0], port)
(use tcpSocket = new Socket(endPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp)
tcpSocket.Connect(endPoint)
)
在上面的不完整代碼段,IPEndpoint必須上傳嗎?爲什麼?
let endPoint : IPEndPoint = new IPEndPoint (hostEntry.AddressList[0], port)
產生兩個錯誤。第一個表示找不到適當的重載方法。
第二誤差,這是我以前沒有見過,是
This value is not a function and cannot be applied.
我通過具有分配給的IPAddress單獨let語句分離這對hostEntry.AddressList[0]
,並映射到該行的錯誤(不包括在上面的示例中)。
我已經看到一些關於F#的文章無法上傳,但我仍然有點困惑,爲什麼會出現這個錯誤。
您需要使用'[0]'索引到一個集合 - 否則它解析爲應用功能到列表'[0]'。 – kvb