由于C#缺乏对独立功能的支持,我发现很难找到放置转换功能的地方.例如,我想将枚举转换为数字.在C++中,我将为此创建以下独立功能:
UINT32 ConvertToUint32(const MyEnum e);
Run Code Online (Sandbox Code Playgroud)
我怎样才能在C#中优雅地做到这一点?我应该创建一个虚拟静态类来保存函数,如果是,我该如何为它找到一个有意义的名字?或者我应该进行部分类转换?
有任何想法吗?
提前致谢.
更新:回想起来,我的示例选择不当,因为在enum和int之间存在默认转换.这将是一个更好的例子:
Person ConvertToPerson(const SpecialPersonsEnum e);
Run Code Online (Sandbox Code Playgroud)
我会去:
namespace ExtensionMethods
{
public static class MyExtensions
{
public static int ConvertToInt(this MyEnum e)
{
var m;
// ... Implementation
return m;
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后你只需使用MyEnum.ConvertToInt();同一个类可以在同一个类中进行多次转换.扩展方法简而言之,该死的性感.
此外,埃里克关于类型转换器的评论让我谷歌搜索.非常棒,但是我不确定如何使用它们Enum,但对于其他转换,它们是干净的实施哨子.看看这里:
| 归档时间: |
|
| 查看次数: |
352 次 |
| 最近记录: |