Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#/Delegate没有类型参数_C#_Delegates - Fatal编程技术网

C#/Delegate没有类型参数

C#/Delegate没有类型参数,c#,delegates,C#,Delegates,我有两个C#文件: EventDel.cs: public delegate void EventDel(DocdEvent事件); HBE.cs其中包含下一个字段: public EventDel toCatchOne{get;set;} 它给了我下一个错误: 委托没有类型参数。 如何解决此问题?您的学员似乎不是泛型学员,请在HBE.cs内尝试以下内容: public EventDel toCatchOne {get; set; } 或者在EventDel.cs中: public

我有两个C#文件:

  • EventDel.cs

    public delegate void EventDel(DocdEvent事件);
    
  • HBE.cs
    其中包含下一个字段:

    public EventDel toCatchOne{get;set;}
    
  • 它给了我下一个错误:

    委托没有类型参数。
    

    如何解决此问题?

    您的学员似乎不是泛型学员,请在HBE.cs内尝试以下内容:

    public  EventDel toCatchOne {get; set; }
    
    或者在EventDel.cs中:

    public delegate void EventDel<HBE>(DocdEvent event);
    
    public delegate void EventDel(DocdEvent事件);
    
    EventDel
    EventDel
    是两种完全不同的类型。它们不兼容。在您的情况下,
    EventDel
    只接受一个类型为
    DocdEvent
    的参数。类型
    EventDel
    只接受类型为
    ME
    的参数(不管是什么)

    要使代码正常工作,请尝试:

    public  EventDel<ME> toCatchOne {get; set; }
    
    或修改您的第一个代理:

    public delegate void EventDel(DocdEvent event);
    
    进入:

    在最后一种情况下,您仍然使用两种不同类型的委托,但如果要将一个委托转换为另一个委托,请使用构造函数:

    EventDel d1 = ...;
    EventDel<ME> d2 = new EventDel<ME>(d1);
    
    eventdeld1=。。。;
    EventDel d2=新的EventDel(d1);
    
    删除
    使其显示
    public EventDel toCatchOne{get;set;}
    public delegate void EventDel(ME event);
    
    EventDel d1 = ...;
    EventDel<ME> d2 = new EventDel<ME>(d1);