F # Äquivalent der 'object' C # Schlüsselwort
Frage
Ich versuche, in dem Hafen ein vorhandenen c # zu f # und ich würde auf der Portierung diese c # line stecken bin immer:
public object myInnerOject
Lösung
In C # object
ist nur ein Typ Name System.Object
bezieht. In F #, können Sie entweder diesen vollständig .NET-Namen oder einen Typ alias obj
.
Nun, in Bezug auf eine Felddeklaration - es gibt verschiedene Möglichkeiten, zu schreiben, dass je nach Kontext. Außerdem ist es eine gute Praxis, alle Felder in F # zu initialisieren, so dass es sinnvoll wäre, größeren Kontext des Codes zu sehen.
Sie können jedoch diese schreiben:
type A() =
let mutable (myInnerObj:obj) = null
Dies schafft ein privates Feld myInnerObj
vom Typ System.Object
zu null
initialisiert, die wandelbar kann später zugeordnet werden kann (myInnerObj <- new Random()
, zum Beispiel). Ich verwenden Beispiel mit eigenem Feld, weil die öffentlichen Felder im Allgemeinen in .NET abgeraten.
Andere Tipps
@Tomas ist richtig. Sie können auch diese Blogs überprüfen: