在C ++中,模板具有可以将值作为参数传递给函数模板的功能。如何在C#中执行相同的操作?
例如,我想做类似以下的事情:
template <unsigned n> struct Factorial {
enum {
result = n * Factorial<n - 1>::result;
};
};
template <> struct Factorial<0> {
enum {
result = 1;
};
};
Run Code Online (Sandbox Code Playgroud)
但是在C#中。我怎样才能做到这一点?
顺便说一句,我对它们的实际需求涉及按需生成类(更改了一些静态值),因此提供的代码仅是示例。
C#泛型不像C ++模板那样。它们仅适用于类型,不适用于值。
但在 C# 中。我怎样才能做到这一点?
顺便说一句,我对它们的实际需求涉及按需生成类(更改了一些静态值),因此所提供的代码只是一个示例。
正如Daniel 所解释的,通过泛型这是不可能的。
一种可能的替代方案是使用T4 模板。根据您的需求,您可能会在编译时根据模板生成类,这听起来可能会满足您的需求。
| 归档时间: |
|
| 查看次数: |
2809 次 |
| 最近记录: |