黑馬程式設計師 c 中問號的含義

2021-06-02 13:25:08 字數 1088 閱讀 9333

------------------

windows phones 7手機開發

、.net培訓

、期待與您交流!---------------------- 

在c#中有個較為重要,而常被一些人忽視的符號——問號(?)。在這裡整理一下它在c#的幾種情況:

可空型別修飾符「t?」:可空型別的基礎型別可以是任何非可空值型別或任何具有struct約束的型別引數,但不能是可空型別或引用型別。例如:int?代表是可空的整形,而int??則是無效型別。即可空型別可以表示其基礎型別的所有值和乙個額外的空值。語法t?是system.nullable的縮寫形式。可空型別具有乙個hasvalue的bool型別唯讀屬性,當可空型別例項的該屬性為true時,則表示該例項是非空例項,包含乙個已知值value;hasvalue為false時,訪問value屬性將導致system.invalidoperationexception。可空型別t?具有乙個型別為t的單個引數的公共建構函式,如new int?(123)將獲得乙個值為123的int?型別例項。從t?到由t實現的任何介面都存在裝箱轉換,並且從由t實現的任何介面都存在到t?的拆箱轉換。但是任何情況下可空型別都不滿足介面約束,即使基礎型別實現了該特定介面。

條件運算子「x ? y : z」: 「x ? y : z」的意思大部分程式設計師應該都熟悉,稍微囉嗦一下:) 如果表示式x為true,則計算y;如果x為false,則計算z。省卻if{}else{}的簡單形式了。

空合併運算子「??」:該運算子是在泛型出現後,c#詞法語法中新增加的標記,同時出現的還有乙個「::」(命名空間別名限定符)。形式為「a??b」的空合併表示式要求a為可空型別或引用型別。如果a為非空則表示式「a??b」返回的結果為a;否則返回b。空合併運算子為結合運算子,即操作時從右向左進行組合的。如,「a??b??c」的形式按「a??(bb??cc)」計算。

------------------

windows phones 7手機開發

、.net培訓

、期待與您交流!---------------------- 

黑馬程式設計師

asp.net android ios開發 net培訓 期待與您交流!map hashtable 底層是雜湊表資料結構,不可以存入null鍵和null值。該執行緒是同步的,jdk1.0出現,效率低。hashmap 底層是雜湊表資料結構,允許使用null鍵和null值。該集合執行緒是不同步的,將has...

黑馬程式設計師

1.了解反射 反射 就是通過class檔案物件,去使用該檔案中的成員變數,構造方法,成員方法。person p new person p.使用 要想這樣使用,首先你必須得到class檔案物件,其實也就是得到class類的物件。2.反射中的類 class類 成員變數 field類 構造方法 const...

黑馬程式設計師

黑馬程式設計師 j a基礎學習筆記2 一 筆記內容概述 關鍵字 識別符號 注釋 注釋的應用 常量 進製的由來 進製轉換 負數的進製 變數的介紹 變數的基本演示 型別提公升 強制轉換 字元型別運算過程 型別運算細節 算術運算子 賦值運算子。二 常用內容介紹 1.注釋內容不占用記憶體,即使新增再多的注釋...