Just for context, I’m an experienced software engineer with years of experience with both C++ and C#, as well as several others, including Rust. You can do shallow and deep copies in C# as well, it’s done extremely infrequently because it’s usually a bit of a code smell and it has some downsides - it’s inefficient both for performance and for memory.
In C# the assignment operator will copy the value if it’s a value type (structs and primitives) and copy the reference if it’s a reference type (classes). It does that because it’s a garbage collected language and it needs to track how memory is referenced and so on.
The whole debate about what languages are better is honestly a bit silly, IMO. C, C++, Python, C#, Javascript, Rust, they all serve their purpose, they have their strengths and weaknesses.
deleted by creator