2014-12-12 6 views
15

Ich möchte eine Klasse erstellen, die nur einen Konstruktor hat, der privat ist. Jetzt weiß ich, wie man es in C# macht, aber ich kann nicht herausfinden, wie man es in F # macht.Erstellen einer Klasse mit einem privaten Konstruktor in F #

Im Grunde ist es das, was ich in F # tun:

/// <summary> 
    /// A valid string is a string of 50 characters or less that contains only letters of the latin alphabet. 
    /// </summary> 
    public sealed class ValidString { 
     private readonly string _value; 

     private ValidString(string value) { 
      _value = value; 
     } 

     public string Value { get { return _value; } } 

     public bool TryParse(string input, out ValidString validStr) { 
      bool valid = input.Length <= 50 && input.All(Char.IsLetter); 
      validStr = valid ? new ValidString(input) : null; 

      return valid; 
     } 
    } 

Antwort

28

Der Zugriffsbezeichner des primären Konstruktor den Namen und den Typ folgt Parameter des Typs:

type ValidString private (value: string) = 
    ... 
+0

Genau das, was ich gesucht habe zum! Vielen Dank –