gpt4 book ai didi

c# - 什么是 C# 中的内部密封类?

转载 作者:IT王子 更新时间:2023-10-29 03:43:56 24 4
gpt4 key购买 nike

我正在查看一些 C# 代码以扩展 VS2010 中的语言支持(Ook 示例)。我看到一些类叫做internal sealed class

这些有什么作用?人们会使用它们吗?

最佳答案

这是一个类:

  • internal:只能从它定义的程序集(或友元程序集)内访问。
  • sealed:不可继承。

将类标记为internal 是一种防止程序集的外部用户使用它们的方法。这实际上是一种设计封装形式,恕我直言,将不属于预期公共(public) API\对象模型的类型标记为 internal 是一种很好的做法。从长远来看,这可以防止您的库的用户将自己耦合到您不希望他们耦合的类型。这种意外的耦合会损害您更改和发展库实现方式的能力,因为您无法在不破坏客户的情况下更改它们。使用 internal 有助于将图书馆的公共(public)和可用表面积保持在预期范围内。

将类标记为sealed 可防止这些类被继承。这是一个非常激进的设计意图,如果一个类已经非常专业以至于不应该通过直接继承或通过覆盖其行为向其添加其他功能是明智的,那么它有时很有用。

internalsealed 以完全不同的方式修改类型,但它们可以一起使用。

注意 您对 internal 有一些进一步的范围控制,因为您可以将一组其他程序集定义为“ friend ”。这些友元程序集可能会访问您的内部 类型。这对于定义协作程序集(如生产和测试程序集)很有用。通常希望测试程序集能够看到它正在测试的程序集中的所有类型。

关于c# - 什么是 C# 中的内部密封类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4619185/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com