private void button1_Click(object sender, EventArgs e)
{
string Q = "TEST";//建立一個字串
object W = Q;//字串轉物件
string A = W as string;//物件轉回字串 判斷是否成功
if (A != null)//A不等於null
{
MessageBox.Show("OK");//成功 show出ok
}
else//A等於null
MessageBox.Show("不OK");
}
再來,來看個轉型不成功null的例子
private void button1_Click(object sender, EventArgs e)
{
int Q=1;
object W = Q;
string A = W as string;
if (A != null)
{
MessageBox.Show("OK");
}
else
MessageBox.Show("不OK");//在判斷時無法成功轉型因此A還是NULL
}
嘗試轉成型別int 或 double 數值型態valueType結果發現 編譯器SHOW出(int is a non-nullable value type)
才驚覺發現 原來有使用上的限制
原因是轉換過程是if做null判斷
所以不可以使用valueType數值類型 比如說 int double 之類的
不然連執行都不能執行 編譯將會出現錯誤
下面示範 連執行都不能執行的 列子
private void button1_Click(object sender, EventArgs e)
{
int Q=1;
object W = Q;
int A = W as int;
if (A != null)
{
MessageBox.Show("OK");
}
else
MessageBox.Show("不OK");
}
沒有留言:
張貼留言