class - 在 F# 中使用私有(private)构造函数创建一个类

标签 class constructor f# private

我想做一个有 的类(class)仅限 一个私有(private)的构造函数。现在我知道如何在 C# 中做到这一点,但我不知道如何在 F# 中做到这一点。

基本上这就是我想在 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 static bool TryParse(string input, out ValidString validStr) {
            bool valid = input.Length <= 50 && input.All(Char.IsLetter);
            validStr = valid ? new ValidString(input) : null;

            return valid;
        }
    }

最佳答案

主构造函数的访问说明符遵循类型的名称和类型参数:

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

关于class - 在 F# 中使用私有(private)构造函数创建一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27450581/

相关文章:

c++ - 如何区分 C++ 中的隐式/显式构造函数调用?

f# - F# 如何同时报告语法和语义错误?

f# - 是否正在为 F# 编写编译器 Hello World?

azure - 在 Azure Functions 中使用 F#

Swift 相当于这个类

python - NameError 在字典理解中使用 eval

php - 从 PHP 中的构造函数调用另一个构造函数

java - 任务的非 Javafx 等效项

java - java的设置方法不起作用

c++成员在父子构造函数之间更改值