.Equals and == have different meaning in C#. Decent IDEs will warn you about that (and yes, that excludes Visual Studio, but that always was crap 😄).
As for (re)assignments - I don’t see an issue with that, tbh; you only have to be aware of whether you’re using a reference- or value type (and if you aren’t, then let’s be honest - you have bigger problems).
I admit, “canonical C#” looks like shit due to a fuckton of legacy stuff. Fortunately, newer patterns solve that rather neatly and that started way back in C# 6 or 7 (with arrow functions / props and inlined outs).
Tl;dr: check the new features, fiddle with the language yourself. Because hell, with refstructs you can make it behave like quasi-Rust
.Equals
and==
have different meaning in C#. Decent IDEs will warn you about that (and yes, that excludes Visual Studio, but that always was crap 😄).I admit, “canonical C#” looks like shit due to a fuckton of legacy stuff. Fortunately, newer patterns solve that rather neatly and that started way back in C# 6 or 7 (with arrow functions / props and inlined
out
s).Tl;dr: check the new features, fiddle with the language yourself. Because hell, with
ref struct
s you can make it behave like quasi-Rust