Я знаю, что дженерики в 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 ) );
}