2012-09-17 56 views
0

examples on the web,我看到有一個方法Dataflow.TransformBlock.Post(),但我不能讓它編譯:爲什麼'post'是Dataflow.TransformBlock的一種方法?不編譯

Dim q As New Dataflow.TransformBlock(Of Integer, Integer)(Function(x As Integer) As Integer 
                    Return x 
                   End Function) 
q.post(5) 

的錯誤是:

「後」是不是'System.Threading.Tasks.Dataflow.TransformBlock(Of Integer,Integer)'的成員。

+0

它可能是Dataflow命名空間中的擴展方法,或者可能存在套管問題。嘗試'Post'而不是'post'並嘗試導入Dataflow命名空間。 –

+0

@Strilanc AFAIK VB不區分大小寫,所以不應該是這個問題。 – svick

+0

@svick沒錯。我正在考慮由不區分大小寫引入歧義的可能性不大......我想這在這種情況下會是一個不同的錯誤。 –

回答

3

Post()是一個擴展方法,這意味着你需要導入TPL數據流的命名空間:

Imports System.Threading.Tasks.Dataflow 

如果你這樣做,你也可以刪除該塊類名Dataflow.前綴。

1

根據MSDN,這僅適用於.NET 4.5 - 可能您正在項目中使用舊版.NET版本和/或未執行Imports System.Threading.Tasks.Dataflow和/或未引用System.Threading.Tasks.Dataflow.dll

+0

如果他使用舊版本的.Net或缺少引用,他將無法使用TPL Dataflow,因此前面的代碼也不會編譯。 – svick