c#入門學習筆記

p35 @字符串

在字符串之前加上一個@,可以保持原生字符,不用再進行轉義(除了雙引號)。

例如:

@"A short list:
item 1
item 2"

或者:

@"C:\Temp\MyDir\MyFile.doc"

這相當于"C:\\Temp\\MyDir\\MyFile.doc"

p41 using static

可以使用using static System.Console來將靜態成員直接包含到作用域中。

這樣訪問WriteLine()方法就不用再加上靜態類名了。

p71 typeof 運算符

typeof運算符可以得到操作數的類型。
例如:

string myString = "north";
orientation myDirection = (orientation)Enum.Parse(typeof(orientation), myString);

p80 數組問號

int?[] myIntArray = new int?[7] {5, intValue, 9, 10, null, 2, 99};

注意緊跟在int聲明之后的問號?。問號旨在讓編譯器直到這個int[]數組可以包含空對象,若沒有這個問號,就會顯示編譯異常。

其次,要注意在初始化一個整數時,通常將其默認設置為0。

p80多維數組

二維數組格式:

int[,] intArray;

多維數組格式:

int[,,,] intArray;

初始化:

double[,] hillHeight = new double[3,4];

也可以用字面值進行初始賦值:

double[,] hillHeight = {{1,2,3,4}, {2,3,4,5}, {3,4,5,6}};

訪問:

double[,] hillHeight = {{1,2,3,4}, {2,3,4,5}, {3,4,5,6}};
foreach (double height in hillHeight){Console.WriteLine($"{height}");
}
hillHeight[0,0]
hillHeight[0,1]
hillHeight[0,2]
...
hillHeight[1,2]

這種數組叫做矩形數組,因為每一行的元素個數都相同。

還有一種鋸齒數組(jagged array),詳情見p82。

p98 ref和out

ref關鍵字可用于返回類型和入參類型。
使用例子:

  1. 首選在函數形參處指定ref
    static void ShowDouble(ref int val)
    {val*=2;Conosole.WriteLine($"val doubled = {val}");
    }
    
  2. 在函數調用時需要再次指定(這是必需的)
    int myNumber = 5;
    Console.WriteLine($"myNumber = {myNumber}");
    ShowDouble(ref myNumber);
    Console.WriteLine($"myNumber = {myNumber}");
    

ref必須在外部初始化,C#不允許假定ref參數在使用它的函數中初始化。

也就是說下面的用法是非法的:

int muNumber;
ShowDouble(ref myNumber);
Console.WriteLine($"myNumber = {myNumber}");

除了ref外,還要out關鍵字。

使用out關鍵字時,必須把它看成尚未賦值。
調用函數時會丟棄out中存儲的值。

例子:

static int MaxValue(int[] intArray, out int maxIndex)
{int maxVal = intArray[0];maxIndex = 0;for(int i=1, i<intArray.Length; ++i){if(intArray[i] > maxVal){maxVal = intArray[i];maxIndex = i;}}return maxVal;
}

使用該函數:

int[] myArray = {1,2,2,,1,332,22,12211};
Console.WriteLine("maximum value" + $"{MaxValue(myArray, out int maxIndex)}");
Console.WriteLine("The first occurrence of this value is " + $"at element {maxIndex + 1}");

p100 元組

示例:

var numbers = {1,2,3,4,5};

上面代碼創建了一個名為numbers的元組,其中包含成員Item1、Item2、Item3、Item4和Item5。

可以以下面的方式來訪問這些成員:

var number = numbers.Item1;

還可以給成員指定特定的名稱來明確標識:

(int one, int two, int three, int four, int five)nums = {1,2,3,4,5};
int first = nums.one;

p135 雙問號空值合并操作符

friend ?? throw new ArgumentNullException(paraName: nameof(friend), message: "null")

上面的帶使用了雙問號(??),稱為空值合并操作符(null-coalescing operator),檢查所賦的值是否為null,若為null,則拋出ArgumentNullException函數;否則將該值賦給變量。

雙問號(??)是一個單元運算符,其左右兩邊數據類型必須是相同類型或能隱形轉換類型的。意思是,首先檢測左邊的值,若為Null,那么整個表達式取值為右側的值,否則為左側的值。

例如:string s = null; Console.Write(s ?? "abc");。將打印出"abc"。
例如:string s = "a"; Console.Write(s ?? "abc");將打印出"a"。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/15662.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/15662.shtml
英文地址,請注明出處:http://en.pswp.cn/web/15662.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

網盤攻略,羊毛薅到底,這4招太狠了

僅供參考 先買原石會員賬戶&#xff0c;再綁手機。 自己手機千萬不要去注冊115&#xff0c;先去馬云家買原石會員帳戶(五十多自帶33T永久空間&#xff0c;非常實惠)。買完原石帳戶后再用手機登錄綁定帳戶和修改密碼。買8T永久空間8年VIP 然后再花560元買8T永久空間8年vip&…

嵌入式全棧開發學習筆記---C語言筆試復習大全22

目錄 結構體 結構體的聲明 定義結構體變量 訪問結構體成員進行初始化 通過結構體變量名訪問結構體成員 結構體指針 結構體指針的定義 通過結構體指針訪問結構體成員 結構體數組 結構體數組的定義 遍歷結構體數組 結構體的長度&#xff08;筆試重點&#xff09; 上一…

深入理解C++多態-虛函數

引言 C多態的實現方式可以分為靜態多態和動態多態&#xff0c;其中靜態多態主要有函數重裝和模板兩種方式&#xff0c;動態多態就是虛函數。下面我們將通過解答以下幾個問題的方式來深入理解虛函數的原理&#xff1a; 為什么要引入虛函數&#xff1f;&#xff08;用來解決什么…

2024年最新信息安全標準匯總

這些標準是我們在數字化時代保障網絡安全、數據安全的重要基石&#xff0c;對于維護國家安全、企業利益和個人信息安全具有至關重要的作用。 隨著科技的快速發展&#xff0c;網絡空間的安全威脅也在不斷演變&#xff0c;從復雜的網絡攻擊到個人信息泄露&#xff0c;這些安全風…

JAVA面試題大全(十四)

1、Kafka 可以脫離 Zookeeper 單獨使用嗎&#xff1f;為什么&#xff1f; kafka不能脫離zookper單獨使用&#xff0c;因為kafka使用zookper管理和協調kafka的節點服務器。 2、Kafka 有幾種數據保留的策略&#xff1f; Kafka提供了多種數據保留策略&#xff0c;這些策略用于定…

哈希雙指針

文章目錄 一、哈希1.1兩數之和1.2字母異位詞分組1.3最長子序列 二、雙指針2.1[移動零](https://leetcode.cn/problems/move-zeroes/description/?envTypestudy-plan-v2&envIdtop-100-liked)2.2[盛最多水的容器](https://leetcode.cn/problems/container-with-most-water/d…

嵌入式0基礎開始學習 ⅠC語言(7)指針

0.問題引入 int a 5; a 1024; //把1024存放到變量a的地址中去 b a; // 取變量a的值&#xff0c;賦值給b >在c語言中&#xff0c;任何一個變量&#xff0c;都有兩層含義 (1)代表變量的存儲單元的地址&#xff1a;變量的地址…

藍橋樓賽第30期-Python-第三天賽題 統計學習數據題解

樓賽 第30期 Python 模塊大比拼 統計學習數據 介紹 JSON&#xff08;JavaScript Object Notation, /?d?e?s?n/&#xff09;是一種輕量級的數據交換格式&#xff0c;最初是作為 JavaScript 的子集被發明的&#xff0c;但目前已獨立于編程語言之外&#xff0c;成為了通用的…

分享10個國內可以使用的GPT中文網站

在今天的人工智能領域&#xff0c;基于對話的語言模型已成為研究的熱點&#xff0c;尤其是像 ChatGPT 這樣因其出色的語言理解與對話交互能力而廣受關注的模型。本文將介紹10個國內可以直接使用GPT的網站&#xff0c;旨在為大家在選擇和使用這些優秀的AI工具時提供有價值的參考…

使用pyqt繪制一個愛心!

使用pyqt繪制一個愛心&#xff01; 介紹效果代碼 介紹 使用pyqt繪制一個愛心&#xff01; 效果 代碼 import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget from PyQt5.QtGui import QPainter, QPen, QBrush, QColor from PyQt5.QtCore import Qt, Q…

[保姆式教程]使用目標檢測模型YOLO V8 OBB進行旋轉目標的檢測:訓練自己的數據集(基于衛星和無人機的農業大棚數據集)

最近需要做基于衛星和無人機的農業大棚的旋轉目標檢測&#xff0c;基于YOLO V8 OBB的原因是因為嘗試的第二個模型就是YOLO V8&#xff0c;后面會基于YOLO V9模型做農業大棚的旋轉目標檢測。YOLO V9目前還不能進行旋轉目標的檢測&#xff0c;需要修改代碼 PS:歡迎大家分享農業大…

【研發日記】Matlab/Simulink技能解鎖(九)——基于嵌入式處理器仿真

文章目錄 前言 基于嵌入式處理器仿真 使用方式 第一步&#xff0c;硬件連接 第二步&#xff0c;配置硬件資源 第三步&#xff0c;配置XCP協議 第四步&#xff0c;加載Contrl Model 第五步&#xff0c;運行仿真 第六步&#xff0c;仿真報告 分析和應用 總結 參考資料 前言…

無線技術整合到主動噪聲控制(ANC)增強噪聲降低性能

主動噪聲控制&#xff08;ANC&#xff09;已成為一種廣泛使用的降噪技術。基本原理是通過產生與外界噪音相等的反向聲波&#xff0c;將噪音中和&#xff0c;從而達到降噪的效果。ANC系統通常包括以下幾個部分&#xff1a;參考麥克風、處理芯片、揚聲器和誤差麥克風。參考麥克風…

家政保潔服務小程序怎么做?家政公司快速搭建專屬小程序

在數字化時代背景下&#xff0c;家政保潔服務行業也迎來了線上轉型的新機遇。家政保潔服務小程序&#xff0c;作為一種新型的線上服務平臺&#xff0c;不僅能夠提升家政公司的服務效率&#xff0c;還能為顧客提供更加便捷的預約上門服務體驗。那么家政保潔服務小程序怎么做呢&a…

AI與量子計算:科技新時代的雙重飛躍

在科技的浪潮中,每一次技術革新都如同一次深海潛行,探尋著未知的奧秘。近年來,人工智能(AI)和量子計算兩大領域的發展尤為引人注目,它們不僅代表了科技的未來趨勢,更是人類社會進步的強大動力。本文將深入探討這兩項技術的最新進展、潛在影響以及它們之間的潛在聯系。 …

2024年3月小程序類目調整匯總公告

各位小程序開發者&#xff1a; 為進一步加強平臺的規范管理&#xff0c;優化開發者類目選擇體驗&#xff0c;現對以下類目進行調整&#xff0c;請各位開發者知悉。 類目調整 #【文娛-小說】 現資質要求 &#xff08;3選1&#xff09;&#xff1a; 1、提供《互聯網出版許可…

從零開始搭建一個SpringBoot項目

目錄 Spring BootSpring Boot 項目開發環境1、快速創建SpringBoot項目2、pom.xml 添加 Meavn 依賴3、配置application.yml4、驗證數據庫是否連接成功5、配置 Druid 數據源 Spring Boot 整合 MyBatis1、準備依賴2、application-dev.yml 配置3、啟動類添加Mapper接口掃描器4、設置…

BWVS 靶場測試

一、PHP弱類型 is_numeric() 輸入&#xff1a;127.0.0.1/BWVS/bug/php/code.php # 1、源代碼分析 如果num不是數字&#xff0c;那么就輸出num&#xff0c;同時如果num1&#xff0c;就輸出flag。即num要是字符串又要是數字 # 2、函數分析&#xff1a; is_numeric()函數&…

使用Nginx的Mirror模塊的指南

Nginx 是一個廣泛使用的 web 服務器和反向代理服務器&#xff0c;性能出色且易于配置。Nginx 提供了各種模塊來擴展其功能&#xff0c;其中一個有用的模塊是 mirror 模塊。本文將詳細介紹 Nginx 的 mirror 模塊&#xff0c;包括其用途、使用場景、注意事項以及示例代碼。 1. m…

《最新出爐》系列入門篇-Python+Playwright自動化測試-40-錄制生成腳本

宏哥微信粉絲群&#xff1a;https://bbs.csdn.net/topics/618423372 有興趣的可以掃碼加入 1.簡介 各種自動化框架都會有腳本錄制功能&#xff0c; playwright這么牛叉當然也不例外。很早之前的selenium、Jmeter工具&#xff0c;發展到每種瀏覽器都有對應的錄制插件。今天我們…