gpt4 book ai didi

C# const 与 lambda 效率

转载 作者:太空宇宙 更新时间:2023-11-03 22:54:25 25 4
gpt4 key购买 nike

我有一些包含大量常量的库。任何使用该库的应用程序都将使用这些常量中的一部分或不使用这些常量。所以,我想知道是否使用 lambda 表达式(例如):

public static Milliseconds {
public static int OneSecond => 1000;
public static int TwoSeconds => 2000;
.
.
}

在文件大小(exe 或 dll)或运行时速度方面比:

public static Milliseconds {
public const int OneSecond = 1000;
public const int TwoSeconds = 2000;
.
.
}

我敢肯定任何差异都是最小的。我不想挤出最后一个字节或纳秒,我只是好奇。谢谢。

最佳答案

属性方法实际上创建了类似 get_OneSecond() 的方法,它返回一个存储在程序集中的数字。

第二种 const 方法不创建任何成员,它内联值您在编译时使用常量的任何地方。

因此,方法 1 将占用更多空间并且“效率”较低,即需要执行更多指令。当然,我们谈论的是不明显的微小差异。

但是,同时方法 1 为您提供了两件事:

  • 它提供了更大的灵 active ,允许您封装您的逻辑。例如,有一天你可以让 OneSecond 以另一种方式获取(从配置加载/计算/等)而不是常量。这些更改不会更改抽象,也不会影响使用您的 Milliseconds 类的人。

  • 它允许您通过替换 DLL 来更新您的值。如果您使用常量并替换包含您的 Milliseconds 类的 DLL,它将不起作用,因为常量是内联的 - 您将不得不重建整个项目。

关于C# const 与 lambda 效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46092920/

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