Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

VB -> C#: Avoid loopTo in for loops if possible

Aberta
#1,243 2 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
52/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Pouca atividade
Stack de tecnologia
csharp
Domínio
compilers, tooling

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

enhancement

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

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de icsharpcode/CodeConverter

Todas as issues de icsharpcode/CodeConverter

Issues semelhantes

Mais issues de C#

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.