0
일부 기존 VB.Net 코드를 C#으로 마이그레이션하려고합니다. Telerik 코드 변환기를 사용하고 있습니다. 여기 이 코드에서 메서드 그룹에서 입력 오류로 변환 할 수없는 이유는 무엇입니까?
... 나는이 방법 그룹 '변환 할 수 없습니다 얻고있다public static int GetEnumIntFromString(string value, Enum convertTo)
{
int[] enumValueArray = null;
try
{
if (value.Trim.Length > 0)
{
enumValueArray = Enum.GetValues(convertTo.GetType);
foreach (int i in enumValueArray)
{
if (value.ToUpper == Enum.GetName(convertTo.GetType, i).ToUpper)
{
return i;
}
}
}
//Return Integer.MinValue
throw new Exception("Invalid Enum value. Cannot convert '" + value + "' to " + convertTo.GetType.ToString);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
//=======================================================
//Service provided by Telerik (www.telerik.com)
//Conversion powered by NRefactory.
//Twitter: @telerik
//Facebook: facebook.com/telerik
//=======================================================
내 기존 VB.Net 코드
Public Shared Function GetEnumIntFromString(ByVal value As String, ByVal convertTo As [Enum]) As Integer
Dim enumValueArray() As Integer
Try
If value.Trim.Length > 0 Then
enumValueArray = [Enum].GetValues(convertTo.GetType)
For Each i As Integer In enumValueArray
If value.ToUpper = [Enum].GetName(convertTo.GetType, i).ToUpper Then
Return i
End If
Next
End If
'Return Integer.MinValue
Throw New Exception("Invalid Enum value. Cannot convert '" & value & "' to " & convertTo.GetType.ToString)
Catch ex As Exception
Throw New Exception(ex.Message)
End Try
End Function
입니다 그리고 여기 Telerik/s의 코드 변환의 출력입니다 'to convectionTo.GetType 아래에'Type '오류 (적색 줄무늬)가 있습니다. .GetType 뒤에 괄호를 추가하려고했지만 "System.Aray '형식을'int [] '형식으로 암시 적으로 변환 할 수 없습니다."
코드 의도는 ENUM 문자열 값과 형식을 제공하는 것입니다. ENUM의 정수 값을 가져옵니다.
모든 아이디어는 크게 감사하겠습니다.
이 ... 그가 아니다
가 변환기의 잘못. VB.NET은'()'으로 끝내지 않고 메서드 호출을 지원합니다. –@VisualVincent VB.NET에서 프로그래밍을 시작했습니다. 변환기는 C#에서 유효하지 않은 것을 알아야하며 실패하거나'()'을 추가합니다. –
어떻게? Trim이 메서드, 속성 또는 필드인지 여부는 알 수 없습니다. 구문을 변환하기 때문에 사용자 정의 클래스 및 기타 사용자 정의 멤버를 참조하는 스 니펫을 아무 것도 불평하지 않고 변환 할 수 있습니다. –