Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当我将私有变量移动到基类中时,应该如何设置它们?_C# - Fatal编程技术网

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中,你似乎已经得到了一个非常详细的解释。