簡體   English   中英

為什么VB Parallel.ForEach不能推斷我的循環項類型?

[英]Why can't VB Parallel.ForEach not infer my loop item type?

我有一類Parent擁有物業Items是一個List(of Child)

如果我使用此代碼

Parallel.ForEach()(parent.Items,
            Sub(item)
                item.DoSomething()
            End Sub)

我得到一個編譯器警告No overload for method ForEach() accepts this count of arguments

如果我將代碼更改為

Parallel.ForEach(of Child)(parent.Items,
            Sub(item)
                item.DoSomething()
            End Sub)

有用。

但是,在c#我可以寫

Parellel.ForEach(parent.Items, item =>
    {
        item.DoSomething();
    });

為什么VB在這種情況下不推斷?

在你的第一個VB例子中,你有一組額外的括號,所以你正在調用.ForEach沒有參數。 刪除它們,它將工作:

Parallel.ForEach(parent.Items,
         Sub(item)
            item.DoSomething()
         End Sub)

如果您希望VB編譯器推斷類型參數,則不提供類型參數(Of )括號:

Parallel.ForEach(parent.Items,
        Sub(item)
            item.DoSomething()
        End Sub)

以同樣的方式,就像您希望C#編譯器推斷類型一樣,您不提供類型參數<>尖括號。

錯誤是試圖告訴你VB編譯器在你的第一個例子中看到的是對ForEach的調用, 沒有參數() 然后調用第一次調用的返回值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM