什么是readonly财产的最佳方法

Pat*_*ent 1 c# properties

我正在使用模型UserRepository-> User

存储库用于保存和加载用户.

我希望能够在存储库中设置ID,但我不希望它由UI访问.

用户和存储库位于Core项目中,Web位于Web中.

有没有办法做到这一点,如属性的修饰符,或者我应该将ID放在用户构造函数中?

谢谢

Nic*_*ver 8

你可以使用没有setter的属性和这样的私有变量:

private int _id; //Set locally
public int ID
{
  get { return _id; }
}
//in the class _id = 5;
Run Code Online (Sandbox Code Playgroud)

或者使用私有setter的自动属性,如下所示:

public int ID { get; private set; }
//in the class ID = 5; this won't work outside the class
Run Code Online (Sandbox Code Playgroud)

在第二个/自动情况下,它实际上只是编译器执行第一个示例,只是在眼睛上更快更轻松.