我正在嘗試此操作,但不確定它需要什麼參數。在字符串值的基礎上設置對齊方式
VerticalAlignment.TryParse("top"); // Must return VerticalAlignment.Top & ignore case
有什麼辦法可以做到這一點?請指導
我正在嘗試此操作,但不確定它需要什麼參數。在字符串值的基礎上設置對齊方式
VerticalAlignment.TryParse("top"); // Must return VerticalAlignment.Top & ignore case
有什麼辦法可以做到這一點?請指導
VerticalAlignment
是一個枚舉,所以儘量使用Enum.Parse
這樣的:
var result = (VerticalAlignment)Enum.Parse(typeof(VerticalAlignment), "top", true);
當然,你也可以寫自己的泛型方法,使這個語法更可口:
public static T ParseEnum<T>(string stringValue) where T : struct
{
return (T)Enum.Parse(typeof(T), stringValue, true);
}
然後像這樣使用它:
var result = ParseEnum<VerticalAlignment>("top");
因爲它是一個enu m使用這個
VerticAligment va = (VerticalAlignment)Enum.Parse(typeof(VerticalAlignment), "top", true);
最後一個值是您需要使ignoreCase屬性匹配不區分大小寫。
你幾乎擁有了 - 你只需要指定第二個參數true
忽略大小寫:
VerticalAlignment alignment;
VerticalAlignment.TryParse("Top", true, out alignment);
+1謝謝,有沒有我可以這樣做,而無需單獨聲明對齊方式:VerticalAlignment.TryParse(「Top」,true,out VerticalAlignment alignment);我必須爲許多類型執行此操作,並聲明每個變量都對我有好處。 – ADi
不幸的是,沒有。 'TryParse'生活在'Enum'類中,就像許多其他有用的方法一樣,例如一個ps.s.w.g顯示給你。如果你正在傳遞的字符串是一個有效的值(即「top」,「bottom」等),那麼他的方法是最簡單的。如果字符串有可能是古怪的,或者只是一個空字符串,那麼對'Parse'的調用將拋出一個異常,而對TryParse的調用將返回一個值,表示解析字符串時出現問題。 –
謝謝,我將來會使用它 – ADi
真棒,甜蜜的期待。效果很好。感謝您的及時迴應 – ADi