Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.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中私有类的用途是什么#_C# - Fatal编程技术网

C# C中私有类的用途是什么#

C# C中私有类的用途是什么#,c#,C#,为什么我们在c#中创建私有类?正如我们所知,私有类不能成为基类,我们也不能从它们派生类。私有类的用途和用途是什么?人们普遍认为,将代码划分为单独的逻辑单元是一种很好的做法。每个单元都有有限数量的相关责任。这使得测试代码变得更容易,一旦测试成功,这些单元就成为我们可以创建更复杂模式的构建块。私有类对于创建实现内部功能的构建块非常有用,您不一定希望使用库的其他项目可以看到这些内部功能。它们还可以实现接口,因此,如果您想设置工厂以便控制生成类的实例,那么它们非常有用--调用方仍然可以通过接口使用该类,

为什么我们在c#中创建私有类?正如我们所知,私有类不能成为基类,我们也不能从它们派生类。私有类的用途和用途是什么?

人们普遍认为,将代码划分为单独的逻辑单元是一种很好的做法。每个单元都有有限数量的相关责任。这使得测试代码变得更容易,一旦测试成功,这些单元就成为我们可以创建更复杂模式的构建块。私有类对于创建实现内部功能的构建块非常有用,您不一定希望使用库的其他项目可以看到这些内部功能。它们还可以实现接口,因此,如果您想设置工厂以便控制生成类的实例,那么它们非常有用--调用方仍然可以通过接口使用该类,即使他们看不到类类型本身。

私有类只能在嵌套类内创建,用于检索访问,并且只能在该嵌套类内使用

私有类(实际上是私有的任何东西)很重要,因为范围的控制很重要,这是由于


如果您正在构建一个库,它将创建一个私有类,那么您的库可以使用这些类,而使用您的库的任何人都无法看到它们。这可能会隐藏您希望隐藏的特定于实现的详细信息

如果要构建具有私有嵌套类的类,则包含类可以使用这些私有类,而其他任何人都看不到它们。同样,您可以使用它来隐藏您希望隐藏的特定于实现的细节


如果不隐藏特定于实现的详细信息(例如,通过公开私有类),则更改实现将变得更加困难,因为您无法确保库的用户没有创建对这些类的依赖关系。但是如果它们是私有的,您可以更改、替换或删除它们,而不必担心会破坏外部依赖关系。

我想您的意思是私有类只能是嵌套类。。。它们不必在嵌套类中。它们只能被外部类使用。同样的原因,我们有私有的东西。除了从类派生之外,我们对类做的其他事情是什么?哦,没错,我们实例化它们——或者调用它们的静态成员。为什么你的问题忽略了类的这些用途?这个问题可能(嗯,是)很糟糕,但它不是“主要基于观点”,所以接近票数是假的。OP只是错误地认为类的唯一目的是从它们派生,而不是使用它们。越过这个错误,问题很简单,为什么会有任何类型的私有实体,这是公认的,不是一个意见问题。“如果你在构建一个库,它将是私有类…”:你通常会将这些类
内部
“如果你在构建一个库,它将是私有类…”这甚至是不可能做到的。您将得到一个CS1527错误。