WHAT'S IN THIS CHAPTER?
Creating fields and constructors
Using access modifiers
Using type extensions
For the experienced C# or Visual Basic developer, this chapter will likely be the least conceptually new material found thus far in the book — as the F# reference states clearly, object-oriented programming is the dominant paradigm of the .NET ecosystem, and classes form the core means by which .NET developers organize their code. As a result, classes and objects are (or at least, should be) familiar ground, and F# supports the full range of object-oriented facilities offered by other languages. Although the F# syntax frequently expresses the same concept in a more terse fashion, overall the developer experienced with objects in C# or Visual Basic will find classes in F# to be a comfortable transition.
A larger danger lurks — as a fusion of both objects and functions, F# offers more than "just" another syntax for building object-oriented applications. As the danger of C++ was in using it as "a better C" and not seeing its deeper capabilities, the danger to the budding F# developer is in using it as "a better C#" and not seeing beyond the object facilities, thus ignoring the potential power of the synthesis of object and function.
To create a new, empty, class, F# uses (again) the
type keyword, and
end markers to indicate the beginning and end of the class declaration:
type Example = class end
This introduces a new class into ...