我想做这样的事情:
public static TResult MyCast<TSource, TResult>(TSource item)
{
return (TResult)item;
}
Run Code Online (Sandbox Code Playgroud)
没有TSource或TResult的限制,并尽可能避免不必要的拳击.
编辑:我想强调一下,我想要一个简单的类型转换,而不是精心设计的类型转换.如果说string,在铸造中失败是完全可以的int.
有没有理智的方法来使用CLR 2.0做到这一点?
编辑:这是一个简化版本,所以它没用,是的.但考虑转换泛型集合,例如:
public static Dictionary<string, TResult> CastValues<TSource, TResult>(this Dictionary<string, TSource> dictionary)
Run Code Online (Sandbox Code Playgroud)
在与我的同事讨论之后,似乎没有简单的方法来实现这样的功能(如果可能的话),所以我遇到了几种非常简单的方法,用于不同情况(即向上和向下)的代码膨胀引用类型和某些值类型的转换):(
太糟糕了,我无法使用.NET 4.0和它的所有dynamic优点.
| 归档时间: |
|
| 查看次数: |
3165 次 |
| 最近记录: |