C# 判斷 Type 的兩種方法

  • 24210
  • 0
  • c#
  • 2016-05-18

摘要:C# 判斷 Type 的兩種方法

之前用過一個 as 運算子的方法,久了又忘了,寫在這裡備忘:

CheckBox cbt = cb as CheckBox;
if (cbt != null)
    cbt.Checked = true;

宣告一個CheckBox並且將被判斷的變數用as轉換,
如果 cb 不是 CheckBox的話,cbt會等於null。
我比較喜歡這個方法。

另一個方法是用GetType(),
GetType().Name可以取出Type名稱的字串,

好處是可以用switch…case判斷結果,如:

string ValueString;
switch (Value.GetType().Name)
{
    case "String":
        ValueString = (string)Value;
        break;
    case "Int32":
        ValueString = ((int)Value).ToString();
        break;
    case "Boolean":
        ValueString = Convert.ToString((bool)Value);
        break;
    default:
        throw (new ApplicationException("型別不符"));
}

20160418 補充:
其實有第3種方法:用 is 更適合、更簡單。