C# 当我将私有变量移动到基类中时,应该如何设置它们?
我的所有控制器中都有以下代码:C# 当我将私有变量移动到基类中时,应该如何设置它们?,c#,C#,我的所有控制器中都有以下代码: public class PackagesController : BaseController { private IAccountService _account; private IDataSourceService _dataSource; private IPackageService _package; private IProductService _product; private IContentServi
public class PackagesController : BaseController
{
private IAccountService _account;
private IDataSourceService _dataSource;
private IPackageService _package;
private IProductService _product;
private IContentService _content;
private ISequenceService _sequence;
它们都继承自BaseController。我对公共、私人和受保护之间的区别有点困惑。我在想我可以把这些移动到BaseController。如果我这样做了,那么我应该使用private、protected或其他修饰符。如果希望派生类具有访问权限,那么应该使用protected。Private甚至会阻止派生类访问,这不是您想要的。Public将允许任何代码访问它们,这在这里是不需要的,因为您通常不需要从外部访问控制器成员。如果希望派生类具有访问权限,您将使用Protected。Private甚至会阻止派生类访问,这不是您想要的。Public将允许任何代码访问它们,这在这里是不需要的,因为您通常不需要从外部访问控制器成员。将这些变量从PackageController移动到BaseController后,如果它们仅在BaseController中使用,则它们应该是私有的,如果它们将同时用于PackageController和BaseController,则应加以保护。我不建议您使用“public”作为变量。将这些变量从PackageController移动到BaseController后,如果它们仅在BaseController中使用,那么它们应该是私有的,如果它们将同时在PackageController和BaseController中使用,那么它们应该受到保护。我不建议您使用“public”作为变量。在将此字段移动到BaseController后,您似乎应该使用
protected
Private表示字段对于其声明的类型是私有的。
--移动这些字段后,您只能在BaseController
内使用这些字段
受保护表示字段也可以在所有派生类型中使用,但不能从外部使用。
--移动这些字段后,您将能够在BaseController和所有派生字段中使用这些字段
Public意味着它可以在任何地方使用。
--移动这些字段后,您将能够在任何地方使用这些字段
您可以从和获得更多信息。将此字段移动到BaseController后,似乎应该使用受保护的
Private表示字段对于其声明的类型是私有的。
--移动这些字段后,您只能在BaseController
内使用这些字段
受保护表示字段也可以在所有派生类型中使用,但不能从外部使用。
--移动这些字段后,您将能够在BaseController和所有派生字段中使用这些字段
Public意味着它可以在任何地方使用。
--移动这些字段后,您将能够在任何地方使用这些字段
你可以从和中获得更多信息。有时候我根本不懂人们的逻辑,比如在这个问题@Restuta中,你似乎已经对投票结果做了非常详细的解释。有时候我根本不懂人们的逻辑,就像在这个问题@Restuta中,你似乎已经得到了一个非常详细的解释。