我知道泛型在 C# 中的作用类似于 C++ 模板,但我确实需要一种在编译时生成一些代码的方法 - 在这种特殊情况下,使用 C++ 模板可以很容易地解决问题。
有没有人知道任何替代方案?也许是预处理代码的 VS 插件或类似的东西?它不需要很复杂,我只需要在编译时生成一些方法。
这是一个非常简化的 C++ 示例(请注意,此方法将在具有各种条件的紧密循环内调用,而不仅仅是“高级”,并且这些条件每帧只会更改一次 - 使用 if 会太慢并且编写所有手动替代方法将无法维护)。另请注意,性能非常重要,这就是为什么我需要在编译时生成它。
template <bool Advanced>
int TraceRay( Ray r )
{
do
{
if ( WalkAndTestCollision( r ) )
{
if ( Advanced )
return AdvancedShade( collision );
else
return SimpleShade( collision );
}
}
while ( InsideScene( r ) );
}
最佳答案
您可以使用 T4 .
编辑:在您的示例中,您可以使用一个简单的bool
参数。
关于c# - C# 中的模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2769076/