// First @Multipart @POST("retrofit-example/multipartPOSTtest.php") fun uploadFile(@Part file: MultipartBody.Part): Call
// Second @Multipart @POST("retrofit-example/multipartPOSTtest.php") fun uploadFile(@Part file: MultipartBody.Part, @Part("postTest") valForPOST: RequestBody): Call Метод ответа: pastebin
Лично, я думаю, что синтаксис VB для делегатов и лямбд является абсолютно поддельным. Я имею в виду, продвиньтесь, AddressOf
! Это было прекрасно в VB6. Это определенно не прекрасно на языке, таком как VB.NET, где функции нужно рассматривать как первоклассных граждан (хотя они действительно не, конечно), и где преобразование из групп метода делегатам более или менее прозрачно.
Теперь введение подставляемых функций является ужасно подробным. Я на самом деле полагаю, что C# приближаются – x => f(x)
тарифицировал бы очень хорошо в VB, потому что он показывает точно, что он делает. В текущем состоянии я предпочитаю C# для любой работы функционального программирования, которая является жалостью, потому что я обычно одобряю VB.
Теперь, я действительно радуюсь, что VB наконец получает многострочные лямбды и лямбды оператора, потому что они иногда все еще полезны (возьмите случай Parallel.For
). Но синтаксис испорчен. То же идет для итераторов, между прочим (если они должны превратить его в VB10).
Я могу думать о двух причинах первое, что пришло на ум, почему я люблю его! Ожидание слишком долго этого.
Во-первых:
Private Sub SomeMethod()
Dim SomeVariable as String = "Some text."
AddHandler SomeButton.Click, Sub()
SomeVariable += " Some more text"
MessageBox.Show(SomeVariable)
End Sub
Во-вторых:
Private Sub SomeMethodRunningInAnotherThread()
Me.Dispatcher.Invoke(Normal, Sub()
'Do some other stuff '
SomeTextBox.Text = "Test"
End Sub)
End Sub
Предпочтением я - разработчик C#, но использовал VB 9 почти исключительно приблизительно в течение года теперь. Вещью № 1 о VB 9, который разбивает мое сердце, являются ограниченные лямбды. Лямбды в VB 9 ограничены следующими способами:
Таким образом, метод ForEach на наборах не будет работать с лямбдами, и только очень самый простой из операций будет работать. Таким образом, большую часть времени необходимо переместить логику в некоторый другой метод и использовать AddressOf. Много раз это раскалывает удобочитаемость кода поразительным и душераздирающим способом.
Это - что-то, что я чувствую, что многие не взяли бы на том, если они не использовали анонимные методы бегло на другом языке, который полностью поддерживает их (C#, JavaScript, и т.д.), а не хромая поддержка, которую они имеют в VB 9.
Я чрезвычайно счастлив, что они фиксируют лямбды в VB 10.
Полная анонимная поддержка метода в VB означает, что можно начать брать более функциональный стиль с вещами. Если Sub () Конец, Sub должен пойти на отдельные строки..., который причиняет боль. Я надеялся бы, что они позволят одной строке анонимные методы, так долго был только один оператор.
Вы испытываете необходимость в мультилинии, после того как мы получаем библиотеку ParallelFX.
Например, позволяет, говорят, что Вы хотели сделать эту параллель цикла:
For i = 0 to 100
'12 lines of code'
Next
Параллельная версия была бы:
Parallel.For( 0, 100, sub(i)
'12 lines of code'
End Sub )
Это работает путем превращения кишок цикла в совершенно новую замену. Тот новый sub называют потоки N, N обычно являющийся количеством доступных ядер.
Нет простых способов справиться с этим:
Преобразование лямбда-выражения тела оператора C # в VB
без многострочных лямбда-выражений.
вздох
Так что да, я очень хочу, чтобы это было полностью обнародовано.
-Adam