I'm quite unsure what I should use in C# - both should in theory do the same, but I think both are quite easely overseen. Or is there another possibility I have to take in consideration?
I know in C++ you use copy-constructors. But in C# I have never heard much of them (they are just a ctor with self as parameter and should reassign all data)
Also should my copy-ctor deep copy all objects or only reassign them?
What is considered 'best practice' for this scenario?