当我将私有变量移动到基类中时,我应该如何设置它们?

本文关键字:何设置 我应该 设置 变量 移动 基类 | 更新日期: 2023-09-27 18:18:27

我有以下代码在我所有的控制器:

public class PackagesController : BaseController
{
    private IAccountService _account;
    private IDataSourceService _dataSource;
    private IPackageService _package;
    private IProductService _product;
    private IContentService _content;
    private ISequenceService _sequence;

它们都继承自BaseController。我对公共、私人和受保护之间的区别有点困惑。我想我可以把这些移到bascontroller中。如果我这样做了,那么我应该使用private, protected还是有其他的修饰符

当我将私有变量移动到基类中时,我应该如何设置它们?

如果您希望派生类具有访问权限,则可以使用Protected。Private甚至会阻止派生类访问,这不是您想要的。Public将允许任何代码访问它们,这里不需要这样做,因为您通常不需要从外部访问Controller成员。

将这些变量从PackagesController移动到BaseController后,如果它们只在BaseController中使用,那么它们应该是私有的,如果它们将在PackagesController和BaseController中使用;bascontroller,它们应该受到保护。我不建议你对变量使用public

似乎你应该使用protected后,移动这些字段到你的BaseController。

Private表示字段对于其声明的类型是私有的。——你将只能在BaseController中使用这些字段,在你移动它们之后。

Protected表示字段可以在所有派生类型中使用,但不能从外部使用。-你将能够在BaseController and all derived ones中使用这些字段后,你将移动它们。

Public意味着它可以在任何地方使用。——你将能够在移动这些字段后从任何地方使用它们。

你可以从MSDN和这个SO问题得到更多。