5

FontStyleを返し、文字列をパラメータとして受け取る関数を書きたい

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

Switchcaseやifelseステートメントで同じことをしたくありません。

大文字と小文字を区別しない文字列に対して実行できますか?

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

同じを返す必要があります。

4

2 に答える 2

10

C#では、これは単なる列挙型です。したがって、次のように変換できます。

FontStyle f = (FontStyle)Enum.Parse(typeof(FontStyle), "Italic", true);
于 2012-09-01T09:31:34.247 に答える
7

これにはリフレクションを使用できます。

var propertyInfo = typeof(FontStyles).GetProperty("Italic",
                                                  BindingFlags.Static |
                                                  BindingFlags.Public |
                                                  BindingFlags.IgnoreCase);
FontStyle f = (FontStyle)propertyInfo.GetValue(null, null);
于 2012-05-10T07:38:27.580 に答える