對於顏色:
System.Drawing.ColorConverter colConvert = new ColorConverter();
Color c = (System.Drawing.Color)colConvert.ConvertFromString("#FF00EE");
,雖然我不知道ConvertFromString需要什麼樣的參數...
喜歡的東西:
string sType = "System.Int32";//Get your type from attribute
string value = "88"; //Get your element
switch (sType)
{
case "System.Int32":
int i = (int)Convert.ChangeType(value, Type.GetType("System.Int32"), CultureInfo.InvariantCulture);
break;
case "System.Drawing.Color" :
Color c = (Color)Convert.ChangeType(value, Type.GetType("System.Drawing.Color"), CultureInfo.InvariantCulture);
break;
}
OR
for (int i = 0; i < effect.Options.Count; i++)
{
object oResult = Convert.ChangeType(effect.Options[i], Type.GetType(effect.Options[i].Attributes["Type"].Value.ToString()), CultureInfo.InvariantCulture);
if (oResult is int)
{
//Process as int
int iTmp = (int)oResult;
}
else if (oResult is Color)
{
//process as color
Color cTmp = (Color)oResult;
}
}
謝謝,在這種情況下,case語句將使用字符串值?你是怎麼從琴絃中得到這些的?我也必須使用開關嗎?就是想。最後一件事,你可以將顏色字符串轉換爲Color嗎?它會起作用嗎? – 2011-03-02 01:04:33
它不會工作。 C#不支持帶有類型的switch語句。 – Lloyd 2011-03-02 01:05:23
仍然無法正常工作。你不能只是添加一個演員,並期望轉換神奇地工作。 – 2011-03-02 01:11:19