小编Bec*_*ite的帖子

为什么我可以设置私有属性的属性?

我有一个类LoginManager,它有一个私有字段currentUser和一个公共属性CurrentUser,不允许自己意外地CurrentUserLoginManager类外部更改其值。

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)

.net c# .net-core

3
推荐指数
1
解决办法
926
查看次数

标签 统计

.net ×1

.net-core ×1

c# ×1