I already checked the link "Why can't I set “this” to a value in C#?" and I know that this is read-only. In other words, it (the content) cannot be assigned to another new object. I am just wondering that the philosophy or the consideration of this constraint in C#. If the reason is about to the safety of memory management, C# employs garbage collector and the usage in the future to an object would be determined.
    public class TestClass
    {
        private int Number;
        public TestClass()
        {
            this.Number = 0;
        }
        public TestClass(TestClass NewTestClass)
        {
            this = NewTestClass;        //  CS1604  Cannot assign to 'this' because it is read-only
        }
    }
As the result, it seems that the members needs to be updated one by one.
public TestClass(TestClass NewTestClass)
{
    this.Number = NewTestClass.Number;  //  Update members one by one.
}
Any comments are welcome.
Note: For clarifying, the C++ part has been removed.
 
     
     
    