小编Chr*_*nes的帖子

将通用T1转换为对象,然后转换为T2是不好的做法?

我在基类中有一个类似于以下的泛型方法:

protected bool TryConvertTo<TIn, TOut>(TIn objIn, out TOut objOut)
    where TIn : MyObjectBase
    where TOut : MyObjectBase
{
    objOut = objIn is TOut ? (TOut) (object) objIn : default (TOut);
    return !ReferenceEquals(objOut, default (TOut));
}
Run Code Online (Sandbox Code Playgroud)

假设我在必要时进行空检查并相应地处理任何应用程序异常.将objIn"双重投射"到对象再到TOut是不好的做法?如果这是不好的做法,是否有任何技术原因,或者仅仅是整体设计问题的反映?

鉴于我的用例,我认为用法是合适的,但由于我通常不使用这样的表达式,我认为获得社群的意见可能是安全的.

c# generics casting

1
推荐指数
1
解决办法
195
查看次数

标签 统计

c# ×1

casting ×1

generics ×1