0
私はいくつかのレガシーVB.NetコードをC#に移行しようとしています。私は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のコードコンバータから出力されている...
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
//=======================================================
私は「メソッドグループから変換できません取得しています'to' Type 'エラー(赤い波線)はconveretTo.GetTypeの下にあります。私は.GetTypeの後にかっこを追加しようとしましたが、 "暗黙的に 'System.Aray'型をint [] 'に変換できません"
コードの目的は、ENUM文字列値と型ENUMの値を取得し、列挙型の整数値を取得します。
アイデアをいただければ幸いです。
彼らはVB.NETのコードに欠けているので、それは括弧が欠落している...それはありませんコンバータの故障。 VB.NETは '()'で接尾辞を付けずにメソッドを呼び出すことをサポートしています。 –
@VisualVincent私はVB.NETでプログラミングを始めました。コンバータはそれがc#では有効ではないことを認識し、失敗するか、見つからない '()'を追加します。 –
? 'Trim'がメソッド、プロパティ、さらにはフィールドであるかどうかは分かりません。これは構文を変換するため、カスタムクラスや他のカスタムメンバーを参照するスニペットを何も文句を言わずに変換することができます。 –