【问题标题】:Can I have a 'protected' member in a parent class and inherit it in a child class?我可以在父类中有一个“受保护”成员并在子类中继承它吗?
【发布时间】:2017-12-08 08:35:45
【问题描述】:

我有admin、customer、supplier 3种用户,都计划继承User类。我可以在User 类中将protected 用于usernamepassword 并在子类中继承它们吗?所有教程似乎都使用private,有什么特殊原因吗?

【问题讨论】:

  • 您应该阅读有关访问修饰符的文档...
  • 你可以。用例取决于您的需求。查看有关修饰符的 C# 教程
  • “所有教程似乎都使用私有” 我猜您将属性的(支持)字段与属性本身混淆了。属性通常不是私有的,而是字段。
  • 是的。实际上这是保护的唯一目的。

标签: c# modifier


【解决方案1】:

我可以在用户类中对用户名和密码使用protected

是的

你是否应该是另一个问题。如果它们是字段,我个人会说:保留字段 private 并添加 protected property - 或者只是简单地说:

protected string UserName {get;set;}

或者也许:

protected string UserName {get;private set;}

如果只有基类能够设置它,或者

protected string UserName {get;}

如果只有基类应该能够设置它并且只能在构造函数中

旁注:任何关于存储密码(即使是在内存中)的讨论都让我感到紧张。

【讨论】:

  • 鉴于问题的性质,考虑到 OP 可能认为“受保护”意味着密码受到保护:)
  • @HansPassant 不要去那里...拜托 :)
猜你喜欢
  • 2018-09-03
  • 2011-01-13
  • 2014-01-30
  • 2017-09-26
  • 2016-07-05
  • 1970-01-01
  • 1970-01-01
  • 2014-12-31
  • 2018-12-31
相关资源
最近更新 更多