2010-12-03 3 views
1

ce qui serait son C# code équivalentvb.net C# Code conversion

Dim arLines() As String 
Dim int i 
    arLines = Split(RTB1.Text, vbNewLine) 
    For i = 0 To UBound(arLines) 
     ''# RTB2.Text = arLines(i) 
    Next i 
+0

j'ai essayé des outils en ligne également de convertir ce code C#, mais cela n'a pas fonctionné .... –

+1

Votre code est vraiment simple. Si vous savez ce qu'il fait et un peu C#, vous devriez être capable de le traduire vous-même sans aucun outil. De quelle partie avez-vous besoin d'aide? – dtb

+4

Qui a upvoted quelque chose comme ça? –

Répondre

4
string[] arLines; 
arLines = RTB1.Text.Split(new string[] { Environment.NewLine }, StringSplitOptions.None); 
for(int i = 0; i < arLines.Length; ++i) 
{ 
    RTB2.Text = arLines[i]; 
} 

qui est fait, mais votre code juste efface la propriété Text de RTB2 chaque itération (je suppose qu'il est pas censé être commenté comme dans votre exemple) , vous pouvez aussi bien faire ceci:

string[] arLines; 
arLines = RTB1.Text.Split(new string[] { Environment.NewLine }, StringSplitOptions.None); 
RTB2.Text = arLines[arLines.Length-1];  
+0

Des trucs fous. arLines [arLines.Length] est une IndexOutOfRangeException garantie. Le dernier index valide est arLines.Length - 1. Qu'est-ce que tout le monde fume aujourd'hui? –

+0

Haha, c'est comme ça. –

+0

Environment.NewLine n'est pas toujours identique à vbNewLine. C'est "\ n" sur les plateformes Unix et "\ r \ n" sur les autres plateformes. vbNewLine est toujours "\ r \ n". Donc vous feriez mieux d'utiliser Constants.vbNewLine à partir de Microsoft.VisualBasic.dll. – huha

2

Il y a un bon traducteur chez Fusion Developer - http://www.developerfusion.com/tools/convert/vb-to-csharp/

J'ai essayé de traduire votre code, mais le traducteur ne fonctionne si votre code compile pour commencer (c'est toujours un excellent endroit pour commencer!). Voir suggestion de @rockinthesixstring :)

+0

Il fait un travail * vraiment * médiocre. –

+1

@Hans pouvez-vous élaborer? Je l'ai toujours trouvé assez fiable - il m'a sauvé de la conversion manuelle de nombreuses pages de code VB (je suis capable de le faire mais qui veut passer ce temps?). –

+0

Information.UBound? Comment un convertisseur ne peut-il pas savoir qu'un tableau a une propriété Length? –

4

la raison pour laquelle les outils en ligne ne vous ont pas était parce que vous n'envoyez VB valide en premier lieu.

Dim int i ''# will not compile 

Vous devez

Dim i As Integer ''# This will compile 

Voici le C# équivalent

string arLines = null; 
int i = 0; 
arLines = Strings.Split(RTB1.Text, Constants.vbNewLine); 
for (i = 0; i <= Information.UBound(arLines); i++) { 
RTB2.Text = arLines(i); 
} 

Cependant, le code ci-dessus (un VB direct à C# traduction) ne va pas beaucoup d'aide pour vous soit puisque RTB2.Text sera simplement la dernière itération de votre boucle for.

Un outil de traduction se trouve à
http://converter.telerik.com

+0

BTW, au moins dans mon code pour l'appel de la bibliothèque "Constants.vbNewLine" pour travailler, j'ai dû inclure explicitement une référence à Microsoft.VisualBasic dans les références du projet. – Jeff

+0

C'est vrai @Jeff. Le PO aurait mieux fait de faire une traduction manuelle. –