VB -> C#: Avoid loopTo in for loops if possible
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 52/100
Direção de pesquisa
A issue não nomeia um arquivo nem um teste; comece localizando o ponto de entrada da conversão de For-loop de VB.NET para C# e o tratamento existente de loopTo. Verifique o comportamento para uma variável local usada como limite superior que não é modificada e para intervalos inteiros de 0 a n - 1; considera-se concluído quando os loops gerados evitam a variável duplicada quando isso for seguro e preservam a semântica.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Thanks for the wonderful tool. Here is an improvement that would make code conversion much easier.
When converting For loops from VB.NET to C#, if the final value of the range is not constant, a loopTo variable is added. While it makes sense from a semantic point of view, this makes the code slightly less readable.
If there are multiple for loops, we end up with a series of loopTo, loopTo2, loopTo3 etc. It would be wonderful if this could be simplified if possible.
For example, the following VB.NET code:
For i As Integer = 1 To n
Next
Is translated as:
for (int i = 1, loopTo = n; i <= loopTo; i++) { }
Proposed solution
When the upper bound is a local variable that is not explicited modified or passed as reference in the loop, simply use that variable instead of creating a duplicate. In the previous example, this would be:
for (int i = 1; i <= n; i++) { }
Another handy improvement would be when iterating from 0 to n - 1 when the loop variable is an integer.
For i As Integer = 0 To n - 1
Next
Would be translated using a strict comparison:
for (int i = 0; i < n; i++) { }
- Linguagem predominante
- C#
- Estrelas
- 916
- Forks
- 242
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de icsharpcode/CodeConverter
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
icsharpcode/CodeConverter#1271 · 1 comentário ·
-
C# -> VB: most pattern matching fails to convertTalvez já em andamento @gherards99 assumiu há 43 dias. AbertaC# -> VB
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
icsharpcode/CodeConverter#1281 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
icsharpcode/CodeConverter#1275 ·
-
VB -> C#: Handleres of sub properties being untrackedTalvez já em andamento @Igor-Tomasi assumiu há 79 dias. AbertaVB -> C#
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 62/100
icsharpcode/CodeConverter#1273 ·
-
VB -> C#: "Group By Into" Linq queries supressing aggregations ("Into" part) in the converted codeAbertaDifficult area VB -> C#
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 74/100
icsharpcode/CodeConverter#1272 ·
Todas as issues de icsharpcode/CodeConverter
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
sebastienros/jint#4282 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 76/100
pyrevitlabs/pyRevit#3792 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 60/100
Mantenedores costumam responder em até 1 dia
-
Update the about pageAberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 65/100
fboucher/2d6-dungeon-app#256 ·
Mantenedores costumam responder em até 1 dia
-
area: design documentation
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
eyalgolan/statecraft-israel#883 ·
Mantenedores costumam responder em até 1 dia