2014-12-12 17 views
15

Tôi muốn tạo một lớp học chỉ có chỉ một trình tạo riêng tư. Bây giờ tôi biết làm thế nào để làm điều đó trong C# nhưng tôi không thể tìm ra cách để làm điều đó trong F #.Tạo một lớp học với một nhà xây dựng tư nhân trong F #

Về cơ bản đây là những gì tôi muốn làm trong F #:

/// <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; 
     } 
    } 

Trả lời

28

Tiếp cận specifier của các nhà xây dựng chính sau các thông số tên và loại của các loại:

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

Chính xác những gì tôi đang tìm kiếm cho! Cảm ơn –

Các vấn đề liên quan