gpt4 book ai didi

c# - 您能否预编译 C# 程序集以允许流畅的强类型、重构友好的代码并且是高性能的?

转载 作者:行者123 更新时间:2023-11-30 22:08:18 25 4
gpt4 key购买 nike

使用强类型名称可以重构友好的代码。引用属性、类型等的名称...通常涉及反射,这会增加开销,这在性能关键型应用程序中可能是个问题。

给定以下代码:

Console.WriteLine( "{0} is now running", typeof( Program ).Name );
Console.WriteLine( "{0} is now shutting down", typeof( Program ).Name );

有没有一种方法可以在执行过程中跳过反射?有没有办法在没有反射调用的情况下实际执行编译代码?

Console.WriteLine( "{0} is now running", "Program" );
Console.WriteLine( "{0} is now shutting down", "Program" );

我尝试过使用 Reflection.Emit(),但似乎无法完全满足需要。任何建议或想法都会很棒。

最佳答案

typeof 运算符和 Type.Name 属性实际上都非常高效。在这种情况下,Console.WriteLine 的开销远远超过它。

对于其他类型的代码,使用“偷偷摸摸的技巧”来避免弱类型反射(例如字符串),例如使用 expression trees to simulate a methodof or fieldof operator ,您可以将结果存储在类的 static readonly 字段中,因此它们只需要计算一次。

关于c# - 您能否预编译 C# 程序集以允许流畅的强类型、重构友好的代码并且是高性能的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22413266/

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