Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.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# 重构一组yeild将stations返回给一个方法_C#_Yield_Yield Return - Fatal编程技术网

C# 重构一组yeild将stations返回给一个方法

C# 重构一组yeild将stations返回给一个方法,c#,yield,yield-return,C#,Yield,Yield Return,如何将多个yield语句分组到一个方法中 我有以下代码: public IEnumerable<IPublisher> RegisterEvents() { var url= Settings.wcfUrl; var publisher = PublisherFactory.Create<IWcfPublisher> (url) publisher.Register(new object(..)); publisher.Re

如何将多个yield语句分组到一个方法中

我有以下代码:

public IEnumerable<IPublisher> RegisterEvents()
{
    var url= Settings.wcfUrl;
    var publisher = PublisherFactory.Create<IWcfPublisher> (url)
        publisher.Register(new object(..));
        publisher.Register(new object(..));
     yield return publisher;

    var url = Settings.webpublisherurl;
    var publisher = PublisherFactory.Create<IWebPublisher> (url)
        publisher.Register(new object(..));
        publisher.Register(new object(..));
     yield return publisher;

    var url = Settings.webpublisherurl2;
    var publisher = PublisherFactory.Create<IWebPublisher2> (url)
        publisher.Register(new object(..));
        publisher.Register(new object(..));
     yield return publisher;
     . . .
}
我不知道如何在
RegisterEvents()
我不断收到编译器错误:

Error CS0266 Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<IPublisher>' to 'IPublisher'...
错误CS0266无法将类型“System.Collections.Generic.IEnumerable”隐式转换为“IPPublisher”。。。

将函数的返回类型更改为IPPublisher,而不是enumerable,并且不要使用它。您的函数应该只返回一个,然后您就可以产生调用。将任何需求作为参数传入

将函数的返回类型更改为IPPublisher而不是enumerable,并且不要在其中插入。您的函数应该只返回一个,然后您就可以产生调用。将任何需求作为参数传入

收益返回
一次只能产生一个值。在获得编译器错误的那一行,您需要迭代方法的结果,然后
按顺序返回它们

foreach (var p in EventHelper.CreateWebApiPublisher())
    yield return p;

yield return
一次只能产生一个值。在获得编译器错误的那一行,您需要迭代方法的结果,然后
按顺序返回它们

foreach (var p in EventHelper.CreateWebApiPublisher())
    yield return p;
foreach (var p in EventHelper.CreateWebApiPublisher())
    yield return p;