【问题标题】:Cannot implicity return type void in generic class?不能在泛型类中隐式返回类型 void?
【发布时间】:2020-02-20 11:34:01
【问题描述】:

我正在尝试构建一个简单的泛型类,它应该将一个对象和一个委托作为泛型参数。当我将方法绑定到事件时收到以下错误:

无法将类型“void”隐式转换为“ConsoleApp3.test.Del”

我不明白为什么我收到此错误,因为我的委托返回 void 并且附加到事件的方法也返回 void。

这是代码:

interface ITerminable
    {
        int Param_1 { get; set; }
    }

    class test<T,F> where T:ITerminable,new() 
                    where F : Delegate,new()
    { 

        internal delegate void Del();
        internal static event Del Ev_fire;

        static T a = new T();
        static F b = new F();


        public static void InvokeEvent()
        {
            Console.WriteLine("Value not added !");

        }

        public static void Validate()
        {
            if (a.Param_1 < 0.5)
            {
                Console.WriteLine("Value Added");
                b.DynamicInvoke();
            }
            else
            {
                Ev_fire += InvokeEvent();

                Ev_fire?.Invoke();
            }
        }

    }

错误在行:Ev_fire += InvokeEvent();

【问题讨论】:

  • 你应该去掉大括号,比如Ev_fire += InvokeEvent;而不是Ev_fire += InvokeEvent();
  • 查看msdn了解详情

标签: c# generics events delegates console-application


【解决方案1】:

试试这个:Ev_fire += InvokeEvent;

【讨论】:

  • 没看到很抱歉。
  • @PavelAnikhouski,您在答案下的评论有什么意义?
  • @Sinatr 的重点是没有什么可回答的,这只是一个大括号的错字,正如我在上面的评论中指出的那样
猜你喜欢
  • 1970-01-01
  • 2016-07-23
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
  • 1970-01-01
  • 2018-11-21
  • 1970-01-01
相关资源
最近更新 更多