c#之是什么 [] C#中的语法

无情 阅读:56 2025-06-02 22:19:02 评论:0

在我研究委托(delegate)时,它实际上是 Delegate.cs 中的一个抽象类,看到下面这个方法,看不懂

  • 为什么返回值使用 ?虽然它已经是一个引用(类)类型
  • ?[]?参数含义

  • 你能解释一下吗?
    public static Delegate? Combine(params Delegate?[]? delegates) 
    { 
        if (delegates == null || delegates.Length == 0) 
            return null; 
     
        Delegate? d = delegates[0]; 
        for (int i = 1; i < delegates.Length; i++) 
            d = Combine(d, delegates[i]); 
     
        return d; 
    } 
    

    请您参考如下方法:

    分步说明: params Delegate?[] delegates - 它是一个可以为空的数组 Delegateparams Delegate?[]? delegates - 整个数组可以为空
    由于每个参数的类型都是 Delegate?然后返回 Delegate?[]? 的索引数组,那么返回类型为 Delegate? 是有意义的否则编译器会返回一个错误,就好像你正在返回和 int来自返回字符串的方法。
    例如,您可以更改代码以返回 Delegate像这样输入:

    public static Delegate Combine(params Delegate?[]? delegates) 
    { 
        Delegate defaulDelegate = // someDelegate here 
        if (delegates == null || delegates.Length == 0) 
            return defaulDelegate; 
     
        Delegate d = delegates[0] ?? defaulDelegate; 
        for (int i = 1; i < delegates.Length; i++) 
            d = Combine(d, delegates[i]); 
     
        return d; 
    } 
    


    标签:C#
    声明

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    关注我们

    一个IT知识分享的公众号