C#对象赋值操作可以禁止么

C#对象时引用类型的,赋值操作后,一个对象的字段修改会导致另一个的对应字段的修改。可以禁止"="号操作避免这样的错误么?

可以使用readonly修饰,或者通过get/set限制对象状态的修改,这里演示下后一种做法:
class User
{
public string UserName { get; private set; }
public int Age { get; private set; }
public User(string userName, int age) { UserName = userName; Age = age; }
}
这样只有对象构造的时候可以一次性指定值,之后就是只读的了。

不行,"="是赋值操作,如果对象为引用对象,则都是指向内存中的同一个地址。这个又不可以重载。你是设计上的问题吧。

对于属性,可以设置只读

对于对象,可以设置其构造函数为private

你别给他赋值不就行了。

可以使用类似 private readonly string name ="admin"; 设置属性的初始值。

Class A
{
public string name{ get; private set; }
}

还可以用const,常量就不能修改值了。