日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#中as和is关键字

發布時間:2023/12/9 C# 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#中as和is关键字 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一. as 運算符用于在兼容的引用類型之間執行某些類型的轉換。例如:

static?void?Main(string[]?args)
{
????
object[]?obj?=?new?object[3];
????obj[
0]?=?new?class1();
????obj[
1]?=?"hello";
????obj[
2]?=?10;

????
for?(int?i?=?0;?i?<?obj.Length;?i++)
????{
????????
string?s?=?obj[i]?as?string;
????????
if?(s?!=?null)
????????{
????????????Console.WriteLine(s);
????????}
????????
else
????????{
????????????Console.WriteLine(
"not?a?string");
????????}
????}

????Console.ReadLine();
}

結果:

not a string

hello

not a string

?

class?Base
{
????
public?override?string?ToString()
????{
????????
return?"Base";
????}
}
class?Derived?:?Base
{?}

class?Program
{
????
static?void?Main()
????{

????????Derived?d?
=?new?Derived();

????????Base?b?
=?d?as?Base;
????????
if?(b?!=?null)
????????{
????????????Console.WriteLine(b.ToString());
????????}

????}
}

對于繼承類,允許把子類轉換成父類,但是不可以把父類轉換成子類,不同類之間,值類型不可轉換。

二.is檢查對象是否與給定類型兼容。

例如,下面的代碼可以確定對象是否為 MyObject 類型的一個實例,或者對象是否為從 MyObject 派生的一個類型:

復制代碼 if (obj is MyObject) { }

如果所提供的表達式非空,并且所提供的對象可以強制轉換為所提供的類型而不會導致引發異常,則 is 表達式的計算結果將是 true。

如果已知表達式將始終是 true 或始終是 false,則 is 關鍵字將導致編譯時警告,但是,通常在運行時才計算類型兼容性。

不能重載 is 運算符。

請注意,is 運算符只考慮引用轉換、裝箱轉換和取消裝箱轉換。不考慮其他轉換,如用戶定義的轉換。

is 運算符的左側不允許使用匿名方法。lambda 表達式屬于例外。

?

class?MyQuickSort
{
????
static?void?Main(string[]?args)
????{
????????class2?c2?
=?new?class2();

????????
if?(c2?is?class1)
????????{
????????????Console.WriteLine(
"Yes");
????????}
????????
else
????????{
????????????Console.WriteLine(
"No");
????????}

????????Console.ReadLine();
????}
}

class?class1
{
????
public?override?string?ToString()
????{
????????
return?"";
????}
}

class?class2:class1
{

}

?

結果:Yes

?




?

轉載于:https://www.cnblogs.com/haiyang1985/archive/2009/03/12/1410023.html

總結

以上是生活随笔為你收集整理的C#中as和is关键字的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。