C# 在.NET中管理类库

C# 在.NET中管理类库,c#,.net,C#,.net,我的问题涉及.NET中引用的类库。 假设我有一个包含4个类的类库,用于解决各种任务 在另一个项目中,我引用了上述类库,并显式地只使用整个类库中的一个类 可执行项目是否使用整个类库,或者编译器是否仅提取已使用的类以避免“不必要”的开销(类库中未使用的其他类) 我有一个很大的实用程序类库,我应该把它分成更小的类库吗?或者在使用类库减少内存空间时是否有任何优化?.Net不会静态链接库,因此引用类库的项目不会“提取”类库之外的任何内容。.Net不会静态链接库,因此引用类库的项目不会从类库中“提取”任何内

我的问题涉及.NET中引用的类库。 假设我有一个包含4个类的类库,用于解决各种任务

在另一个项目中,我引用了上述类库,并显式地只使用整个类库中的一个类

可执行项目是否使用整个类库,或者编译器是否仅提取已使用的类以避免“不必要”的开销(类库中未使用的其他类)


我有一个很大的实用程序类库,我应该把它分成更小的类库吗?或者在使用类库减少内存空间时是否有任何优化?

.Net不会静态链接库,因此引用类库的项目不会“提取”类库之外的任何内容。

.Net不会静态链接库,因此引用类库的项目不会从类库中“提取”任何内容。

回答您的问题:库会被整体使用

在C/C++中,静态链接库的工作方式不同,只导入必要的代码,但即使使用C/C++,动态链接库也会使用整个库


C#与动态链接库更紧密地结合在一起,因此将使用整个库。

回答您的问题:整个库都会被使用

在C/C++中,静态链接库的工作方式不同,只导入必要的代码,但即使使用C/C++,动态链接库也会使用整个库

C#与动态链接库更紧密地结合在一起,因此将使用整个库

可执行项目使用整个类库还是 编译器只提取使用过的类以避免“不必要的” 头顶

类库编译为DLL(动态链接库)。回答您的问题,不,编译器不会从库中“提取”出使用过的类。CLR将在需要时从库中加载该类,它不会将运行时不需要的任何内容加载到内存中

我有一个很大的实用类库,我应该把它分成更多的类库吗 较小的类库或在使用时是否有任何优化 类库以减少内存空间等

基于观点,但您可以按活动划分实用程序,然后按依赖项划分引用,这样在构建应用程序时就不需要释放整个库

可执行项目使用整个类库还是 编译器只提取使用过的类以避免“不必要的” 头顶

类库编译为DLL(动态链接库)。回答您的问题,不,编译器不会从库中“提取”出使用过的类。CLR将在需要时从库中加载该类,它不会将运行时不需要的任何内容加载到内存中

我有一个很大的实用类库,我应该把它分成更多的类库吗 较小的类库或在使用时是否有任何优化 类库以减少内存空间等


基于观点,但您可以按活动拆分实用程序,然后按依赖项引用,这样您就不需要在构建应用程序时释放整个库。

通常,项目中包含的所有类都将编译到程序集中。但是,您可以从IDE中的编译中排除某些类,这将减小程序集的大小


是否应该将库拆分为较小的类库主要取决于这些部分是否可以独立使用。但我不会为了优化尺寸而尝试拆分它。我绝对不会尝试将一个只包含四个类的库拆分到多个库中。

通常,项目中包含的所有类都将编译到程序集中。但是,您可以从IDE中的编译中排除某些类,这将减小程序集的大小

是否应该将库拆分为较小的类库主要取决于这些部分是否可以独立使用。但我不会为了优化尺寸而尝试拆分它。我绝对不会尝试在多个库中拆分只包含四个类的库。

您认为不必要的开销是什么?相关:这里的“大”有多大?您是否注意到了由此产生的任何问题?依我看,在大多数情况下,依赖关系必须非常巨大才能成为问题。(移动可能是一个例外,但我怀疑在大多数移动应用程序中,图像资产等最终会使依赖性相形见绌……)您认为不必要的开销是什么?相关:这里的“大”有多大?您是否注意到了由此产生的任何问题?依我看,在大多数情况下,依赖关系必须非常巨大才能成为问题。(移动可能是一个例外,但我怀疑在大多数移动应用程序中,图像资产等最终会使依赖性相形见绌……)