• AdamBomb@lemmy.sdf.org
    link
    fedilink
    English
    arrow-up
    10
    arrow-down
    1
    ·
    7 months ago

    Null reference checking by the compiler is enabled by default in new C# projects.

    C# doesn’t come with an option monad in its standard library, but its cooler sibling F# does.

    • Kogasa
      link
      fedilink
      arrow-up
      2
      arrow-down
      1
      ·
      7 months ago

      You can also easily write your own option monad or use a tiny library that does.

      • anus@lemmy.world
        link
        fedilink
        arrow-up
        3
        arrow-down
        1
        ·
        7 months ago

        Good idea, then patch the whole standard library and dotmet framework and most popular libraries to use that tiny library

        • Kogasa
          link
          fedilink
          arrow-up
          1
          arrow-down
          1
          ·
          7 months ago

          You don’t need to use the same one. Just don’t expose it publicly in libraries.

      • AdamBomb@lemmy.sdf.org
        link
        fedilink
        English
        arrow-up
        1
        arrow-down
        2
        ·
        7 months ago

        Yeah, 100%. I don’t really recognize the complaint that “it isn’t in the standard library” as being super valid. If you know what an option monad is and you want to use one, you can certainly create one. Lots of people don’t know what it is and won’t miss it, especially in this context since the option monad is a functional construct and C# is an objects-first language.