Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

n1ckooo

Converter de vb.net para c#

Mensagens Recomendadas

n1ckooo

Class UnpackAllMarkets       'For getAllMArkets
  Public marketData As MarketDataType() = {}  'The returned array of market data
  Private Const BaseDate As DateTime = #1/1/1970#
  Private Const ColonCode = "&%^@"  'The substitute code for "\:"

  Sub New(ByVal MarketString As String)
    Dim n As Integer, Mdata, Field As String()

    Mdata = MarketString.Replace("\:", ColonCode).Split(":") 'Get array of Market substrings
    n = UBound(Mdata) - 1
    ReDim marketData(n)

    For i = 0 To n
      Field = Mdata(i + 1).Replace("\~", "-").Split("~") 'Get array of data fields
      marketData(i) = New MarketDataType
      With marketData(i)
        .marketId = Field(0)   'Load the array items
        .marketName = Field(1).Replace(ColonCode, ":")
        .marketType = Field(2)
        .marketStatus = Field(3)
        .eventDate = BaseDate.AddMilliseconds(Field(4))
        .menuPath = Field(5).Replace(ColonCode, ":")
        .eventHeirachy = Field(6)
        .betDelay = Field(7)
        .exchangeId = Field(8)
        .countryCode = Field(9)
        .lastRefresh = BaseDate.AddMilliseconds(Field(10))
        .noOfRunners = Field(11)
        .noOfWinners = Field(12)
        .totalAmountMatched = Val(Field(13))
        .bspMarket = (Field(14) = "Y")
        .turningInPlay = (Field(15) = "Y")

      End With
    Next
  End Sub
End Class

Class MarketDataType           'For getAllMarkets data
  Public marketId As Integer
  Public marketName As String
  Public marketType As String
  Public marketStatus As String
  Public eventDate As DateTime
  Public menuPath As String
  Public eventHeirachy As String
  Public betDelay As Integer
  Public exchangeId As Integer
  Public countryCode As String
  Public lastRefresh As DateTime
  Public noOfRunners As Integer
  Public noOfWinners As Integer
  Public totalAmountMatched As Double
  Public bspMarket As Boolean
  Public turningInPlay As Boolean
End Class


Private Sub bMarkets_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bMarkets.Click
  Print("*** Markets ***")
  Dim oMarketsReq As New BFUK.GetAllMarketsReq
  Dim oMarketsResp As BFUK.GetAllMarketsResp
  With oMarketsReq
    .header = oHeaderUK()
    ReDim .eventTypeIds(0) : .eventTypeIds(0) = 7  'For horse racing
    ReDim .countries(1) : .countries(0) = "GBR" : .countries(1) = "ZAF"
    .fromDate = Today
    .toDate = Today.AddDays(1)
  End With
  oMarketsResp = BetFairUK.getAllMarkets(oMarketsReq)  'Call the UK API
  With oMarketsResp
    CheckHeader(.header)
    Print("ErrorCode = " & .errorCode.ToString)
    If .errorCode = BFUK.GetAllMarketsErrorEnum.OK Then
       Dim AllMarkets As New UnpackAllMarkets(.marketData)  
With AllMarkets
  For i = 0 To .marketData.Length - 1
    With .marketData(i)
      Print(.marketID & " " & .marketStatus & "  " & .marketName & “  “ & .menuPath)
    End With
  Next
End With
    End If
  End With
End Sub

Alguém me ajuda a converter isto para C#?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
n1ckooo

A melhor maneira é leres um tutorial de C#, isso não tem código complexo, num instante aprendes a fazer isso.

Eu já tentei muitas coisas, continua sem entender.

devo estar a confundir as coisas. :S

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jpaulino

Sabes ou o link que te mostrei não conseguiu converter ? ;)

É que se sabes nunca tinhas dito nada.

Usa colecções que é muito mais simples de trabalhar.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
n1ckooo

sei, desculpa não ter dito. o link que me deste já conhecia nem fui lá porque sei que não traduz reDim  para c#.

Vou verificar isso das colecções... se tiver duvidas (vou ter),volto cá....

obrigado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ribeiro55

Se é esse o caso, porque raio não meteste só as partes onde aparecia ReDim ?

Nem C# nem VB conseguem fazer isso. O ReDim é um atalho do VB que internamente cria uma nova array com o novo tamanho e copia os dados da original.

Basta escrever um algoritmo em C# para tal.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
n1ckooo

Se é esse o caso, porque raio não meteste só as partes onde aparecia ReDim ?

Nem C# nem VB conseguem fazer isso. O ReDim é um atalho do VB que internamente cria uma nova array com o novo tamanho e copia os dados da original.

Basta escrever um algoritmo em C# para tal.

Voces falam com uma arrogancia um pouco estranha,para uma comunidade...  mas era mesmo isso que queria saber... obrigado...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ribeiro55

Arrogância?

É uma pergunta legítima: "Porque razão não mencionaste apenas o ReDim, se era tudo quanto precisavas saber?"

Já está resolvido, não interessa ;)


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
n1ckooo

exacto é uma pergunta legitima e respondendo porque também não sabia o que era a class MarketDataType, mas agora não interessa já entendi o código vou adapta-lo ao c# . obrigado pelo tempo despendido, estou a tentar entender as colecções...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.