I have an object named MyObject. It provides some bussiness operation and doesn’t contain any data. In source code, I initialize it to do some operations:
MyObject myObj = new MyObject();
at other place I initialize a new one with different name:
MyObject BuObj = new MyObject();
If myObj has not been destroyed by GC then MyObject too. So when I initialize BuObj does C# reuse MyObject for BuObj instead of initialize a new one?
No, it will create a new one. The C#/.Net GC doesn’t reuse existing objects, only destroys them.
What you’re talking about is called an Object Pool; if you want to make use of that concept you’ll have to implment that functionality yourself, or find an existing library that does so. But “new” will still only create a new object.