[英]Vb.Net assignment to a Tuple
VB 是否支持對元組的賦值? 如果是這樣,語法是什么?
Private Function GetPeStream(metadataDiagnostics As DiagnosticBag, peStreamProvider As EmitStreamProvider, metadataOnly As Boolean) As (peStream As Stream, signingStream As Stream, selectedStream As Stream)
Return ...
End Function
Dim ret As Stream
Dim peStream as Stream
Dim signingInputStream as Stream
(peStream, signingInputStream, ret) = GetPeStream(metadataDiagnostics, peStreamProvider, metadataOnly)
您可以使用以下元組語法在單行中進行初始化和分配。
Dim x As Tuple(Of Stream, Stream, Stream)= New Tuple(of Stream,Stream,Stream)(str1,str2,str3)
重要提示:在上面的直接賦值之前,確保你已經實例化了str1
、 str2
和str3
並賦值給了值
您可以使用下面的示例避免使用 Item1、Item2 等。
Private Function GetPeStream(metadataDiagnostics As DiagnosticBag, peStreamProvider As EmitStreamProvider, metadataOnly As Boolean) As (peStream As Stream, signingStream As Stream, selectedStream As Stream)
.....
Return (processed_peStream, processed_signingStream,processed_selectedStream)
End Function
Private Function ConsumingGetPeStream()...
'Calling the function
Dim Your_Result_From_GetPeStream = GetPeStream(metadataDiagnostics_value, peStreamProvider_value, metadataOnly_Value)
'Using returned values from function
Your_Result_From_GetPeStream.peStream
Your_Result_From_GetPeStream.signingStream
Your_Result_From_GetPeStream.selectedStream
End Function
一個更簡單的版本,以便更好地理解
Public Sub Main()
Dim ReturnFunctionWithTuple = FunctionWithTuple()
Console.WriteLine($"Your long: {ReturnFunctionWithTuple.YourFieldLong}")
Console.WriteLine($"Your date: {ReturnFunctionWithTuple.YourFieldDate}")
Console.WriteLine($"Your bool: {ReturnFunctionWithTuple.YourFiedBoolean}")
End Sub
Public Function FunctionWithTuple() As (YourFieldLong As Long, YourFieldDate As Date, YourFiedBoolean As Boolean)
Return (55, #01/01/2021#, False)
End Function
使用泛型語法聲明元組變量和函數返回類型,以便類型對齊。 例如:
Public Sub GetTuple()
Dim x As Tuple(Of String, String, Integer)
x = GetData()
End Sub
Public Function GetData() As Tuple(Of String, String, Integer)
Dim y = New Tuple(Of String, String, Integer)("A", "B", 27)
Return y
End Function
為了做到這一點,您必須創建一個新的元組,它接受 PKing 所示的賦值,然后一次手動復制每個變量。
Dim x As Tuple(Of Stream, Stream, Stream)
x = GetData()
Dim eStream as Stream = x.Item1
Dim signingInputStream as Stream = x.Item2
Dim Ret as Stream = x.Item3
當然,分配將處於循環中並且具有處理類型的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.