问题描述
- 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; }
}
时间: 2024-09-28 21:32:34