从字符串名称返回FontStyle

我想写一个函数,它将返回FontStyle并将字符串作为参数

FontStyle f = function ("Italic"); // FontStyles.Italic 

我不想写Switch case或if else语句来做同样的事情。

它可以用不区分大小写的字符串吗?

 FontStyle f = function ("italic"); FontStyle f = function ("itAlic"); 

应该返回相同。

您可以使用reflection:

 var propertyInfo = typeof(FontStyles).GetProperty("Italic", BindingFlags.Static | BindingFlags.Public | BindingFlags.IgnoreCase); FontStyle f = (FontStyle)propertyInfo.GetValue(null, null); 

在C#中,它只是一个枚举。 所以你可以像这样转换它:

 FontStyle f = (FontStyle)Enum.Parse(typeof(FontStyle), "Italic", true);