Another one of my C# articles, this time about Nullable.

  • @CatPoop
    link
    2
    edit-2
    2 years ago

    I really like nullable types, they can be very effective for writing safer code.

    Sometimes there are good reasons to separate object construction and initialization (e.g. composite / loosely coupled objects, or encapsulation of 3rd party libraries) so there can be properties/fields that do not yet have valid values, and using separate queries for this is error prone.

    I write a lot of communication interfaces for sensors/actuators and if the communication drops, nullables are a good way to represent invalid readings.

    Being able to convey the value and validity in one variable can be more thread-safe and easier to write pure-functions, and show intent.

    I occasionally use a nullable for singleton patterns if I’m not 100% convinced there can never be multiple instances, rather than painting myself into a corner with a static class. e.g.

    public static MyClass Instance => _instance ??= new();
    private static MyClass? _instance;