访问控制指定代码的可访问性。通过使用这些,您可以指定数据、方法、类等的作用域。
F#中有3种类型的访问控制:
链接:https://www.learnfk.comhttps://www.learnfk.com/fsharp/f-sharp-access-control.html
来源:LearnFk无涯教程网
公共访问控制,也称为默认访问控制。它对所有人都是可访问的。如果您没有在代码中显式指定任何访问控制,则默认情况下它遵循公共访问控制。
type AccessControl() = member public x.a = 10 member public x.display() = printfn "This is public method" let ac = new AccessControl() ac.display() printfn "a = %d" ac.a
输出:
This is public method a = 10
私有访问控制受到的限制最多,范围也有限。F#提供private关键字来声明类或类型中的私有成员。私有的范围仅限于申报的当地挡路。
type AccessControl() = member private x.a = 10 member private x.display() = printf "This is private method" let ac = new AccessControl() ac.display() // display method is private so can't be accessable ouside the type printf "a= %d" ac.a // variable is private.
输出:
error FS0491: The member or object constructor 'display' is not accessible. Private members may only be accessed from within the declaring type.
内部访问控制只能从同一程序集访问。程序集是编译器在编译F#代码后自动生成的文件。它可以是动态链接库(DLL)或可执行文件(Exe)。
type AccessControlIN() = member internal x.a = 10 member internal x.display() = printfn "This is internal method" let aci = new AccessControlIN() aci.display() printfn "a= %d" aci.a
输出:
This is internal method a= 10
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)