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

C# -> VB: Switch Expression in Return Statement Converts to an Empty String

Aberta
#983 1 comentário 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
48/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Estagnada
Stack de tecnologia
csharp
Domínio
tooling

Direção de pesquisa

Reproduza o problema no repositório atual usando o método C# fornecido e compare a saída VB gerada com a forma Select Case esperada. Rastreie o caminho de conversão de C# para VB para expressões switch usadas diretamente em instruções return. A tarefa estará concluída quando a expressão for convertida em um equivalente não vazio que preserve cada case e o ramo default.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

C# -> VB
Input code
private static string GetBaseForNewName(ISymbol declaration)
{
  string name = GetName(declaration);
  return declaration.Kind switch {
      SymbolKind.Method => name + "Method",
      SymbolKind.Property => name + "Prop",
      SymbolKind.NamedType => name + "Type",
      SymbolKind.Field => name + "Field",
      _ =>  declaration.Kind.ToString().ToLowerInvariant()[0] + name.Substring(0, 1).ToUpperInvariant() + name.Substring(1)
  };
}
Erroneous output
Private Shared Function GetBaseForNewName(ByVal declaration As ISymbol) As String
    Dim name As String = GetName(declaration)
    Return
End Function
Expected output
Private Shared Function GetBaseForNewName(declaration As ISymbol) As String
    Dim name = GetName(declaration)
    Select Case declaration.Kind
        Case SymbolKind.Method
          Return name & "Method"
        Case SymbolKind.Property
          Return name & "Prop"
        Case SymbolKind.NamedType
          Return name & "Type"
        Case SymbolKind.Field
          Return name & "Field"
        Case Else
          Return declaration.Kind.ToString().ToLowerInvariant()(0) & name.Substring(0, 1).ToUpperInvariant() & name.Substring(1)
    End Select
End Function
Details
  • Using build of current repository
Linguagem predominante
C#
Estrelas
913
Forks
244
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.