我有一个类LoginManager,它有一个私有字段currentUser和一个公共属性CurrentUser,不允许自己意外地CurrentUser从LoginManager类外部更改其值。
CurrentUser只是{ get; },但我仍然可以更改底层currentUser私有的属性。
例如。
Console.WriteLine(loginManager.CurrentUser.ClockedIn.ToString()); // true
loginManager.CurrentUser.ClockedIn = false;
Console.WriteLine(loginManager.CurrentUser.ClockedIn.ToString()); // false
loginManager.CurrentUser.ClockedIn = true;
Console.WriteLine(loginManager.CurrentUser.ClockedIn.ToString()); // true
Run Code Online (Sandbox Code Playgroud)
登录管理器.cs
public class LoginManager
{
private User? currentUser { get; set; }
private readonly ApplicationDbContext dbContext;
public event EventHandler CurrentUserChanged;
public User? CurrentUser
{
get { return currentUser; }
}
//...
}
Run Code Online (Sandbox Code Playgroud)
用户.cs
public class User
{
public Guid Id { get; set; }
public …Run Code Online (Sandbox Code Playgroud)