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)
)
in dem unvollständigen Codefragment obenMuss IPEndpoint neu erstellt werden und warum?
let endPoint : IPEndPoint = new IPEndPoint (hostEntry.AddressList[0], port)
erzeugt zwei Fehler. Die erste zeigt an, dass eine geeignete Überladungsmethode nicht gefunden werden kann.
Der zweite Fehler, die ich noch nie zuvor gesehen haben, ist
This value is not a function and cannot be applied.
ich dies zum hostEntry.AddressList[0]
isoliert eine separate let Anweisung aufweist, die eine IP-Adresse zugewiesen, und die auf diese Zeile abgebildet Fehler (nicht im obigen Beispiel enthalten).
Ich habe einige Artikel über F # gesehen, die nicht in der Lage sind, Upcasts zu erstellen, aber ich bin immer noch ein wenig verwirrt, warum dieser Fehler auftritt.
Sie müssen 'verwenden [0]' zu Index in einer Sammlung -. Sonst wird es analysiert als eine Funktion der Anwendung zur Liste '[0]'. – kvb