gpt4 book ai didi

c# - 当与 ILMerge 或 SmartAssembly 等工具合并时,内部类是否会变为私有(private)类?

转载 作者:太空狗 更新时间:2023-10-30 00:33:01 25 4
gpt4 key购买 nike

最近我发现了一些允许将 .Net 库合并到 Windows 应用程序中的工具。

现在真正的问题是库的行为如何改变,

  1. 内部 类是否保留在库内部?或者它是否成为应用程序的内部并与之合并?
  2. 是否有可能图书馆发生故障

扩展问题:

  1. 在合并内部程序集时,将其设为私有(private),这样合并后的应用程序就无法使用它,这不是更好吗?

最佳答案

类不能是私有(private)的,除非它们是嵌套的。

但考虑一下:如果您正在合并程序集 A 和 B,那么您必须在合并之前已经编译了它们。当它们被编译时,彼此无法访问每个的内部方法。因此,在合并后的代码中,不可能有调用其他程序集内部方法的方法。

Wont it be better that when merging the assembly that are internal should be made private so that that cant be used by the application they are merged in?

那将如何运作?如果顶级类型是私有(private)的,根本没有其他类型可以访问它。这就是为什么您不能定义私有(private)类型(除非它们嵌套在另一个类型中)。

假设程序集 A 有类 C 和 D,其中 C 是内部类,D 调用类 C 的一些方法。当类 C 被设为私有(private)时(在可能的 CTS 的某些假设版本中),类 D 中断。

关于c# - 当与 ILMerge 或 SmartAssembly 等工具合并时,内部类是否会变为私有(private)类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14041902/

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