我正在做一个VB.Net WinForm应用程序。这是C#的迁移。
在C#中,我有一个像这样定义的变量。
private static Dictionary<string, ExportFormatType> dicExtensiones =
new Dictionary<string, ExportFormatType> {
{".pdf", ExportFormatType.PortableDocFormat},
{".doc", ExportFormatType.WordForWindows},
{".xls", ExportFormatType.Excel},
{".rtf", ExportFormatType.RichText},
{".html", ExportFormatType.HTML40},
{".txt", ExportFormatType.Text}
};
我迁移到了这个......
Private Shared dicExtensiones = New Dictionary(Of String, ExportFormatType) From
{{".pdf", ExportFormatType.PortableDocFormat},
{".doc", ExportFormatType.WordForWindows},
{".xls", ExportFormatType.Excel},
{".rtf", ExportFormatType.RichText},
{".html", ExportFormatType.HTML40},
{".txt", ExportFormatType.Text}}
现在我需要遍历所有ítems并获得每个值......
在C#中是这样的。
List<String> lista = new List<string>();
foreach (var item in dicExtensiones)
{
lista.Add(Enum.GetName(typeof(ExportFormatType), item.Value));
lista.Add("*" + item.Key);
}
我遇到的问题是我确实知道如何迁移
Enum.GetName(typeof(ExportFormatType), item.Value);
到VB.Net,因为VB.Net中不存在Enum.GetName
我该怎么做?
答案 0 :(得分:4)
在VB中,Enum
是一个关键字,也是一个类名,因此您需要在代码中转义它。转义语法类似于SQL:
[Enum].GetName
通过转义它,您告诉编译器您使用该名称而不是关键字引用标识符。例如,您可能还需要偶尔转义自己的类或变量名称:
Dim [property] As String = "belt, wallet with $50, casio watch"
或
Public Class [Class]
Public Property Teacher As String
Public Property Students As List(Of Student)
End Class
尽管在大多数情况下,最好只考虑使用不同的名称来避免它。