判斷對象或變數屬於某種類型:
一、適用類型
1)is可以判斷參考型別和實值型別。
2)as可以判斷參考型別和可空類型。(註:當實值型別變為可空類型時可以用as判斷,可以推斷可空實際是將實值型別進行裝箱操作轉化為了參考型別)。
二、傳回值
1)is傳回值為bool型。
2)as傳回值為要判斷類型。
例1:
class Program
{
static void Main(string[] args)
{
int? i = 0;
string j = String.Empty;
int k = 0;
if (j is int)
{
Console.WriteLine("int");
}
else
{
Console.WriteLine("not int");
}
Other other = new Other();
if (other is Other)
{
Console.WriteLine("Yes");
}
else
{
Console.WriteLine("No");
}
//int x = k as int;//Error:as不可以用於實值型別
int? y = i as int?;//as可以用在可空類型
Console.ReadKey();
}
}
class Other
{
}
例2:
FindControl判斷類型時有兩種寫法:
1)
TextBox txtTmp = XXX.FindControl("txtTmp") as TextBox;
if(txtTmp!=null)
{
txtTmp.Text = "Hello";//操作txtTmp對象
}
2)
TextBox txtTmp = XXX.FindControl("txtTmp") as TextBox;
if(txtTmp is TextBox)
{
txtTmp = (TextBox)XXX.FindControl("txtTmp");
txtTmp.Text = "Hello";//操作txtTmp對象
}
個人推薦第一種寫法^=^