相关疑难解决方法(0)

C#和VB.NET之间最重要的功能区别是什么?

当然,一般语法有区别,但存在哪些其他批判性区别?有一些差异,对吧?

c# vb.net comparison

33
推荐指数
3
解决办法
9997
查看次数

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

我可以在VB.NET中实现IEnumerable函数的yield return吗?

可能重复:
VB.NET中的产量

在C#中,当编写返回a的函数时IEnumerble<>,您可以使用yield return返回枚举的单个项目并yield break;表示没有剩余项目.做同样事情的VB.NET语法是什么?

NerdDinner代码中的一个示例:

public IEnumerable<RuleViolation> GetRuleViolations() {

   if (String.IsNullOrEmpty(Title))
       yield return new RuleViolation("Title required","Title");

   if (String.IsNullOrEmpty(Description))
       yield return new RuleViolation("Description required","Description");

   if (String.IsNullOrEmpty(HostedBy))
       yield return new RuleViolation("HostedBy required", "HostedBy");

   if (String.IsNullOrEmpty(Address))
       yield return new RuleViolation("Address required", "Address");

   if (String.IsNullOrEmpty(Country))
       yield return new RuleViolation("Country required", "Country");

   if (String.IsNullOrEmpty(ContactPhone))
       yield return new RuleViolation("Phone# required", "ContactPhone");

   if (!PhoneValidator.IsValidNumber(ContactPhone, Country))
       yield return new RuleViolation("Phone# does not match country", "ContactPhone");

   yield break;
}
Run Code Online (Sandbox Code Playgroud)

将C#转换为VB.NET工具 …

vb.net ienumerable iterator yield-return

9
推荐指数
2
解决办法
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中"yield return"的等价语法是什么?

使用下面的C#代码,您将如何在Visual Basic中编写它?它试图说什么?

using System;
using System.Collections.Generic;
using System.IO;
using System.Windows;
using System.Windows.Media;
using System.Windows.Media.Imaging;

namespace Microsoft.LiveLabs.Pivot
{
    /// <summary>
    ///     Tile Builder class
    /// </summary>
    public static class TileBuilder
    {
        /// <summary>
        ///     Specifies which images are required in the images array used in CreateTile
        ///     according to the Morton fractal pattern used by Seadragon.
        /// </summary>
        /// <remarks>
        ///     Usage of this and CreateTile are kind of tricky. Here's an example:
        ///     Say you have a results …
Run Code Online (Sandbox Code Playgroud)

c# vb.net loops yield

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

VB .Net相当于产量中断;

VB.Net对c#是否具有等价性yield break

Public Function Validate(validationContext As ValidationContext) 
                As IEnumerable(Of ValidationResult) 
                Implements IValidatableObject.Validate
    '' what is equivalent to C#'s - yield break;
End Function
Run Code Online (Sandbox Code Playgroud)

.net c# vb.net

5
推荐指数
1
解决办法
2006
查看次数

VB.NET相当于这个C#linq类

伙计们,我正在尝试将某些东西从C#转换为VB.NET,而我在查找VB.NET与C#的yield关键字方面存在差异.我意识到'yield'不是VB.NET的可转换关键字,所以有人可以告诉我如何在VB.NET中实现这个代码.除了实现的GetEnumerator()函数之外,我将其全部转换过来.它只是一个实现CollectionBase和IEnumerable的类(使LINQ值得):

[Serializable()]
public partial class Customers : CollectionBase,    System.Collections.Generic.IEnumerable<BusinessLayer.Customer> 
{

    public new System.Collections.Generic.IEnumerator<BusinessLayer.Customer> GetEnumerator()
    {
        foreach (BusinessLayer.Customer Cust in this.List)
        {
            yield return Cust;
        }
    }

    public Customers()
    {

    }

    public Customers(DataRowCollection datarows) : this()
    {
        this.Load(datarows);
    }
    protected void Load(DataRowCollection dataRows)
{
    foreach (DataRow dr in dataRows) {
        this.Add(new Customer(dr));
    }
}

public Customer this[int index] {
    get { return (Customer)base.InnerList[index]; }
    set { base.InnerList[index] = value; }
}

public int Add(Customer val)
{
    return base.InnerList.Add(val);
}
}
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助!

c# linq vb.net ienumerable

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