是否可以进行部分类型推断? [重复]

问题描述 投票:0回答:1

给出以下代码:

    public static TUnbox UnboxAndNullCheck<TUnbox, TBox>(TBox obj, string msg = "Unboxing error") where TUnbox : class, TBox
    {
        var unboxObj = obj as TUnbox;
        if (unboxObj == null)
            throw new ArgumentNullException( msg );
        return unboxObj;
    }

似乎调用它需要两个类型参数:

UnboxAndNullCheck<SubClass, BaseClass>( obj );  

是否有可能以不必指定obj类型的方式来调用它?

UnboxAndNullCheck<SubClass>( obj );  
c#
1个回答
0
投票

固定类型?

public static TUnbox UnboxAndNullCheck<TUnbox> (object obj, string msg = "Unboxing error") where TUnbox : class

但是我真的不确定仅使用isas这会给您带来什么。除了在运行时混乱地抛出一个错误,说所传递的参数显然没有值时,不给它值!

编辑:实际上,我真的不确定只是进行演员转换会给您带来什么。如果可以将TBox强制转换为TUnbox,则可以使用。如果没有,则抛出异常

© www.soinside.com 2019 - 2024. All rights reserved.