Appendix B. F# Interop
This book shows how F# can be a great language for helping you to be more productive, while seamlessly integrating with the existing .NET stack. Although it is true that F# is a great language, the word seamlessly may need to be qualified.
The dominant languages used in .NET today are C# and Visual Basic .NET (VB.NET), and although in F# you can write and call into object-oriented assemblies to interact with C# and VB.NET code, some concepts may get lost in translation.
This appendix is focused on how to ease interop with F#. By the end of this appendix, you’ll be able to identify problem areas when doing multilanguage programming. In addition, you’ll be able to have your F# interoperate with unmanaged (native) code as well by using Platform Invoke and COM.
Note
Although F# allows you to work with both C# and Visual Basic .NET, in this appendix, I’m just going to refer to C# for convenience. Whenever you see the term C#, you can replace it with the phrase C# or Visual Basic .NET depending on your preference.
.NET Interop
The key to interoperation between .NET languages is to make sure that the types and methods in the public surface area of a class library are available to all languages consuming the code. Intuitively, if a library exposes constructs that are not native to the consuming language, things can look a little strange. Or, even worse, the library exposes different idioms for the concepts in both languages.
Nullable Types
Nullable types are for unfortunate ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access