从字符串名称返回FontStyle(Return FontStyle from string nam

2019-09-17 03:53发布

我想写这将返回FontStyle,并采取字符串作为参数的函数

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

我不想写开关的情况下,或者如果else语句做同样的。

可以在不区分大小写字符串做些什么呢?

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

应返回相同。

Answer 1:

您可以使用反射为此:

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


Answer 2:

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

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


文章来源: Return FontStyle from string name
标签: c# parsing fonts