c# - C# 中的模板

标签 c# templates

我知道泛型在 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/

相关文章:

javascript - 通过数组索引将对象从数据传递到 Vue.js 中的组件

c# - 无法让 TinyMCE.MVC.Jquery.Sample 工作

C# - 评估 Excel 逻辑公式

c# - 使用托管 C++ 包装器将字符串从 C# 传递到非托管 C#

c# - ConfigurationManager.AppSettings 越来越空?

用于 INI 文件读取器的 C++ 自定义枚举结构

c++ - 返回整个集合的通用方法

c++ - 如何为模板方法实现编译时 foreach()?

c# - 在运行时将接口(interface)的不同实现注入(inject)命令

c++ - 模板外部链接不起作用