相关疑难解决方法(0)

VB.NET中的产量

C#有一个名为yield的关键字.VB.NET缺少这个关键字.Visual Basic程序员如何解决缺少此关键字的问题?他们是否实现了自己的迭代器类?或者他们尝试编码以避免需要迭代器?

产量关键字不强制编译器做幕后的一些编码.在C#中实现迭代器及其后果(第1部分)就是一个很好的例子.

.net vb.net

62
推荐指数
5
解决办法
3万
查看次数

13
推荐指数
1
解决办法
1万
查看次数

有没有办法在VB.NET中实现类似Caliburn的协同例程,因为没有yield关键字

请注意,我知道其他的产量 vb.net这里做题.

我最近和Caliburn一起玩.一堆伟大的东西,包括合作例程的实施.

我正在做的大部分工作都是基于C#的,但现在我也正在为基于Rob的小型MVVM框架的VB.NET专卖店创建架构指南.

除了使用VB的协同程序外,一切看起来都很顺利.自从使用VB 10以来,我们可以尝试像Bill McCarthy的建议:

Public Function Lines(ByVal rdr as TextReader) As IEnumerable(Of String)
     Return New GenericIterator(Of String) 
          (Function(ByRef nextItem As String) As Boolean
              nextItem = rdr.ReadLine
              Return nextItem IsNot Nothing
           End Function)
End Function
Run Code Online (Sandbox Code Playgroud)

我只是无法理解如何在VB中编写一个更复杂的常规方法(如Rob的GameLibrary中的方法):

public IEnumerable<IResult> ExecuteSearch()
{
    var search = new SearchGames
    {
        SearchText = SearchText
    }.AsResult();

    yield return Show.Busy();
    yield return search;

    var resultCount = search.Response.Count();

    if (resultCount == 0)
        SearchResults = _noResults.WithTitle(SearchText); …
Run Code Online (Sandbox Code Playgroud)

c# vb.net yield coroutine caliburn

6
推荐指数
1
解决办法
775
查看次数

标签 统计

vb.net ×3

yield ×2

.net ×1

c# ×1

caliburn ×1

coroutine ×1

design-patterns ×1

iterator ×1