2014-04-17 4 views
0

VB.NET에서 키릴 문자에서 라틴 문자로 사용자 정의 변환을 만들려고합니다. 나는 사용자 정의 함수를 만들려고 시도한 적이 없으므로 내가 무엇을 잘못하고 있는지 알지 못합니다. 하나의 문제가 있고 함수가 작동하지 않습니다. 객체 참조가 객체의 인스턴스로 설정되지 않았습니다. 내가 다른 하나 개의 알파벳에서 모든 편지를 대체 할 함수를 만들 계획이었다 라틴어 텍스트 키릴에 대한 해결책을 발견하지 않았기 때문에기능 키릴 문자에서 라틴어로 변환

Public Function ConvertCtoL(ByVal ctol As String) As String 

    ctol = Replace(ctol, "Б", "B") 
    ctol = Replace(ctol, "б", "b") 

**End Function** ' doesn't return a value on all code paths 

.

답변

1

반환 할 값을 알려면 Return ctol이 필요합니다.

"검색 테이블"을 연구하면 아마도 깔끔한 기능을 만들 수 있습니다.

편집 :Lookup table에 대한 위키피디아 항목은 좋은 시작이어야합니다. 나는 그것에 대해 아무것도 몰라 원인

Imports System.Text 

Module Module1 

    Function ReverseAlphabet(s As String) As String 
     Dim inputTable() As Char = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray() 
     Dim outputTable() As Char = "ZYXWVUTSRQPONMLKJIHGFEDBCA".ToCharArray() 
     Dim sb As New StringBuilder 

     For Each c As Char In s 
      Dim inputIndex = Array.IndexOf(inputTable, c) 
      If inputIndex >= 0 Then 
       ' we found it - look up the value to convert it to. 
       Dim outputChar = outputTable(inputIndex) 
       sb.Append(outputChar) 
      Else 
       ' we don't know what to do with it, so leave it as is. 
       sb.Append(c) 
      End If 
     Next 

     Return sb.ToString() 

    End Function 

    Sub Main() 
     Console.WriteLine(ReverseAlphabet("ABC4")) ' outputs "ZYX4" 
     Console.ReadLine() 
    End Sub 

End Module 
+0

이 ', 당신은 조회 테이블에 대한 몇 가지 링크를 제공 할 수 있습니다, 감사 : 여기

간단한 예입니다. – Jovica

+1

@ user3338345 링크와 간단한 예를 사용하여 답변을 편집했습니다. –