河北對口計算機高考C#筆記(2026高考適用)---持續更新~~~~

C#筆記

C#發展史
  1. 1998年,C#發布第一個版本。
  2. 2002年,visual studio開發環境推出
C#的特點

1.語法簡潔,不允許直接操作內存,去掉了指針操作

2.徹底面向對象設計。

3.與Web緊密結合。

4.強大的安全機制,語法錯誤提示,引入垃圾回收器機制。

5.兼容性。

6.完善的錯誤,異常處理機制。

.NET(平臺)

面向網絡支持各種用戶終端的開發環境

  1. 公共語言運行時(CLR): 中間語言代碼,負責將不同的編程語言的編譯結果統一。
  2. 類庫:系統封裝好的工具包,可以直接拿來使用。

.NET發展

  1. 2000 比爾蓋茨提出構想
  2. 2002 微軟發布了.NET Framework1.0
  3. 2003 微軟發布了.NET Framework1.1
  4. 2005 微軟發布了.NET Framework2.0
  5. 2006 微軟發布了.NET Framework3.0
  6. 2010 微軟發布了.NET Framework4.0
  7. 2020 .Net5.0發布
Visual Studio項目管理

1.解決方案:包含多個不同類型的項目,是一個項目集合,大的文件夾。

.Net中常見的文件類型

? .sln:解決方案文件

? .csproj:項目文件

? .cs:C#源碼文件

? .resx:資源文件

? .aspx:網頁文件

? .asmx:XML Web文件

? .config:配置文件

? .suo:解決方案用戶選項

命名空間(namespace):命名控件在C#中起到組成程序的作用,也可以作為外部程序調用的憑證。

:class為類的關鍵字,每個對象都屬于一個類,類是對象的模板。

關鍵字:系統提前賦予特定意義的一些單詞。

標識符

開發過程中,需要自定義命名的,如變量名,常量名,對象名,方法名,函數名等都屬于標識符。

命名規則:由字母、下劃線、數字組成,且數字不能開頭,不能使用關鍵字。

Main方法(程序入口)

C#程序中的Main方法必須聲明為static,并且區分大小寫

 static void Main(string[] args){//程序代碼}
/*static:靜態修飾符
void:表示無返回值
string[] args:表示參數為數組*/
注釋語句

功能:注釋起解釋代碼的作用,不會參與代碼的編譯工作

  1. 行注釋:以“//”開頭,將一整行代碼注釋掉
  2. 塊注釋:以“/* ”開頭,中間包含注釋內容,以“ */”結尾
輸入方法和輸出方法
  1. 輸入方法:Console.Readline() ------從鍵盤獲取一行字符串

    ? Console.Read() -------從鍵盤獲取一個字符

  2. 輸出方法:Console.WriteLine() -----將數據輸出至屏幕并且加上一個換行符

    ? Console.Write() -----將數據輸出至屏幕

    注意:

    1.同一行代碼可以書寫多條語句。

    int a; int b; int c;
    

    2.將一條語句拆分成多行書寫。

    Console.WriteLine
    ("你好");
    

數據類型

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

值類型
簡單類型
  1. 整數類型

    類型標識符說明占用位數取值范圍
    sbyte帶符號字節型8-27~27-1
    byte無符號字節型80~2^8-1
    short帶符號的短整型16-215~215-1
    ushort無符號的短整型160~2^16-1
    int帶符號的整型32-231~231-1
    uint無符號整型320~2^32-1
    long帶符號的長整型64-263~263-1
    ulong無符號的長整型640~2^64-1
  2. 實數類型

    類型標識符說明占用位數精度
    float單精度浮點數326~7位
    double雙精度浮點數(取值范圍最大)6415~16位
    decimal固定精度浮點數(精度最高)12828~29位

    注意:

    ? 1.包含小數點的數值會被默認位double類型。

    ? 2.在數值后邊加F或f可以強制指定為float類型。

    ? 3.在數值后邊加M或m可以強制指定為decimal類型。

    Double double1 = 3.14;
    float float1 = 3.14f;
    decimal decimal1 = 3.1415926m;
    
  3. 字符類型

    采用Unicode編碼格式,每個字符占用兩個字節。

    定義字符類型使用char關鍵字,值使用單引號(‘’)括起來。

    char chr1 = 'a';
    char chr2 = '你';
    

    注意:

    ? 1.如果使用雙引號,即使包含一個字符也會認定為字符串類型,字符類型是基本數據類型,字符串類型為用引用類型。

  4. 布爾類型

    Boolean flag1 = true;
    Boolean flag2 = false;
    

    注意:

    布爾類型不能直接轉換為int類型。

復雜類型
  1. 結構類型

    將分散簡單變量整合為一體,體現數據之間的內在聯系。

    //定義語法
    struct 結構名稱
    {數據類型 字段名1;數據類型 字段名2;...}//定義一個具有姓名和年齡的結構類型Student
    struct Student
    {public string name;public int age;public char sex;
    }
    
  2. 枚舉類型

    指程序中某個變量具有一組確定的值,通過枚舉可以將其值一一列出來。

    //定義枚舉
    enum 枚舉名{枚舉成員1,枚舉成員2,...
    }enum season
    {spring,summer,autumn,winter
    }
    
引用類型
object類型

object類型是所有類型(值類型和引用類型)的基類,C#中所有的類型都是直接或者間接繼承object,一個 object類型的變量可以賦任何類型的值。

int x = 100;
object obj;
obj=x;
Object obj2 = "你好";
Console.WriteLine(obj);
Console.WriteLine(obj2);
string類型

字符串對象,表示一個Unicode字符序列。String和string都能定義字符串變量

String str = "Hello World";
string str2 = "你好";
Console.WriteLine("{0},{1}",str,str2);
值類型與引用類型的區別

值類型:棧

引用類型:堆

類型轉換
隱式轉換

不需要加以聲明就可以進行的轉換,原類型取值范圍包含在目標類型中,就可以實現隱式轉換。

小--------->大

int a = 12345;
long b = a;
顯示轉換(強制轉換)
//(類型標識符)表達式
float a = 123.45f;
Console.WriteLine((int)a);
//實數類型轉換為整數類型通常輝出現精度丟失問題
使用方法進行數據類型轉換

1.Parse方法:可以將字符串轉換為數值型。

//語法:數值類型名稱.Parse(字符串表達式)
int a = int.Parse("123456");
Console.WriteLine(a);int pwd = int.Parse(Console.ReadLine());
Console.WriteLine(pwd);

2.Convert類的方法:將一種基本數據類型轉換為另一種基本數據類型

//語法:Convert.轉換方法(值)
int a;
a = Convert.ToInt32("123");
Console.WriteLine(a);int pwd;
pwd = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(pwd);
裝箱與拆箱

實現值類型與引用類型的相互轉換。

  1. 裝箱轉換(將一個值類型的數據轉換為對象類型的數據)

    int i = 10;
    object obj = i;
    
  2. 拆箱轉換(將一個引用類型的數據轉換為值類型數據)

    int i = 10;
    object obj = i;
    int j = (int)obj;
    
變量與常量
常量
  • 概念:在程序運行過程中,其值不會改變的量。

  • 分類:

    • 直接常量(一個固定值)

      1.整型常量:16,28L
      2.浮點常量:3.14,4.25f,8.997m
      3.字符常量:'a','0'
      4.字符串常量:"abc","HelloWorld"
      5.布爾常量:true,false
      
    • 符號常量

      //定義語法:常量名全大寫
      //const 數據類型 常量名 = 常量值
      const float PI = 3.14;/*注意:
      1.const是定義常量的關鍵字
      2.常量名推薦全部大寫
      3.常量一旦賦值,不可修改
      4.常量的賦值只能適用常量和常數,不能使用變量
      */
      
變量
  • 概念:在程序運行過程中其值可以不斷改變的量。

  • 變量名:

    • 只能使用數字、字母、下劃線組成,且數字不能開頭
    • 不能使用關鍵字
    • 嚴格區分大小寫
    • 如果使用關鍵字作為變量名,開頭需加@
  • 變量的定義

    //語法:
    //數據類型 變量名[ = 值];
    //可以再定義變量時直接賦值,也可以后期賦值。
    int a = 13;
    int b;
    b = 3+5;
    
  • 變量的作用域(定義變量的適用范圍)

    • 成員變量:在類體中定義的變量稱為成員變量,在整個類體中都能用。
    • 局部變量:在類的方法中定義的變量,只能在方法內部使用。
運算符與表達式
  1. 算數運算符

    符號意義示例結果
    +加法運算12+3446
    -減法運算88-2365
    *乘法運算3*26
    /除法運算
    (運算符左右都為整型,做整除運算)
    10/3.03.33333
    %取余10%31
  2. 自增與自減運算符

    • 自增運算(++)使操作數的值加1

    • 自減運算(–)使操作數的值減1

      int i = 1;
      i++;
      Console.Writeline(i);       //i=2
      i--
      Console.Writeline(i);       //i=1
      
    • 位置規則:

      • 前置形式:先進行自增或自減再進行運算

      • 后置形式:先進行運算再進行自增或自減

          int a = 5, b, c;b = a++;Console.WriteLine(a);      //a=6    b=5c = ++a;                 //c=7Console.WriteLine(a);   //a=7Console.WriteLine(b);   //b=5Console.WriteLine(c);   //c=7
        
  3. 字符串運算符

    1. +:拼接字符串,合并成新字符串。

       String a = "123";int b = 465;Console.WriteLine(a + b);  //123456
      
  4. 賦值運算符

    /*變量名 = 值/表達式
    =:賦值運算符,將等號右邊的值賦值給等號左邊的變量或者常量*/string a;
    a = "Hello World";
    int i;
    i = (int)12.3;**賦值復合運算符**| 符號   | 意義         | 示例                          |
    | ------ | ------------ | ----------------------------- |
    | **+=** | **加賦值**   | **a+=b  等同于 a=a+b**        |
    | **-=** | **減賦值**   | **a-=b  等同于  a=a-b**       |
    | ***=** | **乘賦值**   | **a'**='b  等同于  a=a*'*'b** |
    | **/=** | **除賦值**   | **a/=b  等同于  a=a/b**       |
    | **%=** | **取模賦值** | **a%=b  等同于  a=a%b**       |
    | <<=    | 左移賦值     | a<<=b  等同于  a=a<<b         |
    | >>=    | 右移賦值     | a>>=b  等同于  a=a>>b         |
    | &=     | 與賦值       | a&=b  等同于  a=a&b           |
    | ^=     | 異或賦值     | a^=b  等同于  a=a^b           |
    | \|=    | 或賦值       | a\|=b  等同于  a=a\|b         |
  5. 關系運算符

    概念:比較兩個運算數的關系,結果為true和false

    符號意義
    <小于
    <=小于等于
    >大于
    >=大于等于
    ==等于
    !=不等于
  6. 邏輯運算符

    符號意義示例
    邏輯非(取反)!(2<3)------>false
    &&邏輯與(同時為真結果為真,否則為假)3>2 && 5<7 ------->true
    ||邏輯或(有一個為真最終結果即為真)8<9 || 9=10 ------->true
    //閏年的判斷:閏年年份可以被4整除并且不能被100整除,或者能被400整除
    year%4==0    //能被4整除
    year%100!=0    //不能被100整除
    year%400==0    //能被400整除
    year%4==0 && year%100!=0 || year%400==0
  7. 條件運算符|三目運算符|三元表達式|行狀判斷語句

    格式:表達式1?表達式2:表達式3

    邏輯:表達式結果為真,執行表達式2,為假執行表達式3.

    int a,b,c;
    a = 16;
    b = 19;
    a>b?c=a?c=b;
    
  8. 運算符優先級

    運算符類別運算符優先級
    單目運算++、–、!1
    算數運算符*、/、%2
    +、-3
    關系運算符>、>=、<、<=4
    ==、!=5
    邏輯運算符&&6
    ||7
    條件運算符?:8
    賦值運算=9
控制結構
順序結構
  1. 輸入語句:

    Console.Read();         //返回用戶從控制臺上輸入數據的首字符的ASCII碼
    Console.ReadLine();		//將用戶輸入的一行信息用string類型的字符串返回
    
  2. 輸出語句:

    Console.WriteLine();	//輸出后自動換行
    Console.Write();		//輸出后不換行
    
分支結構
  1. 單分支

    /*語法:if(判斷表達式){代碼塊
    }*///輸入一個年齡,判斷是否成年Console.Write("請輸入年齡:");int age = int.Parse(Console.ReadLine());if (age >= 18) {Console.WriteLine("成年");}Console.ReadKey();
    
  2. 雙分支

    /*語法:
    if(判斷表達式){代碼塊1
    }else{代碼塊2
    }
    *///輸入一個年齡,判斷是否成年
    Console.Write("請輸入年齡:");
    int age = int.Parse(Console.ReadLine());
    if (age >= 18)
    {Console.WriteLine("成年");
    }
    else {Console.WriteLine("未成年");
    }Console.ReadKey();
    
  3. 多分支1

    /*
    if(判斷表達式1){代碼塊1
    }else if(判斷表達式2){代碼塊2
    }...else{代碼塊N
    }
    */
    //輸入一個年齡,如果年齡在0~18歲為兒童,19~60成年人,60以上為老人Console.Write("請輸入年齡:");int age = int.Parse(Console.ReadLine());if (age >= 0 && age <= 18){Console.WriteLine("兒童");}else if (age > 18 && age <= 60){Console.WriteLine("成人");}else if (age > 60){Console.WriteLine("老人");}else {Console.WriteLine("輸入有誤");}Console.ReadKey();
  4. 多分支結構2

    /*
    語法:switch(表達式){case 常量表達式1:語句1;break;case 常量表達式2:語句2;break;...default:語句n;break;
    }
    *///輸入學生成績,判斷改成績處于哪個階段,100以上為滿分,90以上為優,80分以上為良好,60以上為及格,否則為不及格。Console.Write("請輸入成績:");int score = int.Parse(Console.ReadLine());switch (score/10) {case 10:Console.WriteLine("滿分");break;case 9:Console.WriteLine("優秀");break;case 8:Console.WriteLine("良好");break;case 7:								//case 7中沒有break語句,程序不會跳出												   結構,直接轉入下一個分支case 6:Console.WriteLine("及格");                                         break;default:Console.WriteLine("不及格");break;}Console.ReadKey();
    }
    

    總結:

    1. if判斷后的表達式結果為布爾類型,switch判斷后的表達式為整型。
    2. 分支結構只會執行一個分支
    3. switch…case語句中不加break,程序不會跳出判斷結構。、
    4. 多分支結構中注意判斷條件的順序。
循環結構
  1. for循環

    /*語法:
    for(循環變量初始化;判斷語句;循環變量的更新){循環體
    }
    執行順序:
    1.初始化循環變量
    2.判斷循環條件是否滿足
    3.滿足		不滿足
    4.執行循環體   跳出循環
    5.更新循環變量
    6.判斷循環條件是否滿足
    ....
    */
    for(int i=0;i<=10;i++){Console.WriteLine(i);
    }/*注意:
    1.for循環中三個表達式都可以省略,分號不可以省略
    2.如果在循環結構中省略變量初始化,那么需要將變量初始化放在循環結構前邊,否則報錯
    3.如果在循環結構中省略判斷條件,那么會陷入死循環,無法自動中止。
    4.如果在循環結構中省略變量更新,也會陷入死循環。
    5.如果循環結構中的所有表達式都省略,也會陷入死循環。
    */
    //打印1~100之間所有的奇數//1~100所有數字找到for (int i = 1; i <= 100; i++){//判斷當前的數字是否為奇數?if (i % 2 == 0){Console.WriteLine(i);}}//計算10的階乘			1*2*3*4*5*6*7*8*9*10
    //計算1~100之間所有的奇數之和?     1+3+5+7+9...
    
  2. while循環

    /*語法:
    while(循環條件){循環體
    }
    執行邏輯:循環條件為真執行循環體,循環條件為假不執行循環體(先判斷后執行)
    */
    //使用while實現登錄系統,重新輸入賬戶密碼操作//登陸系統string user="root&

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

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

相關文章

C# dll版本沖突解決方案

隨著項目功能逐漸增加&#xff0c;引入三方庫數量也會增多。不可避免遇到庫的間接引用dll版本沖突&#xff0c;如System.Memory.dll、System.Buffer.dll等。編譯會報警&#xff0c;運行可能偶發異常。 可使用ILMerge工具合并動態庫&#xff0c;將一個庫的多個dll合并為一個dll。…

深度解析:etcd 在 Milvus 向量數據庫中的關鍵作用

目錄 &#x1f680; 深度解析&#xff1a;etcd 在 Milvus 向量數據庫中的關鍵作用 &#x1f4a1; 什么是 etcd&#xff1f; &#x1f9e0; Milvus 架構簡介 &#x1f4e6; etcd 在 Milvus 中的核心作用 &#x1f527; 實際工作流程示意 ?? 如果 etcd 出現問題會怎樣&am…

隨機訪問介質訪問控制:網絡中的“自由競爭”藝術

想象一場自由辯論賽——任何人隨時可以發言&#xff0c;但可能多人同時開口導致混亂。這正是計算機網絡中隨機訪問協議的核心挑戰&#xff1a;如何讓多個設備在共享信道中高效競爭&#xff1f;本文將深入解析五大隨機訪問技術及其智慧。 一、核心思想&#xff1a;自由競爭 沖突…

設計模式作業

package sdau;public class man {public static void main(String[] args) {show(new Cat()); // 以 Cat 對象調用 show 方法show(new Dog()); // 以 Dog 對象調用 show 方法Animal a new Cat(); // 向上轉型 a.eat(); // 調用的是 Cat 的 eatCat c (Cat)a…

Kaspa Wasm SDK

文章目錄 1. 簡要2. github地址 1. 簡要 kaspa wallet SDK&#xff0c;在官方WASM基礎上封裝了應用層的方法&#xff0c;簡便了WASM的初始化及調用。 核心功能包括如下&#xff1a; 賬戶地址生成及管理Kaspa Api 和 Kasplex Api的封裝kaspa結點RPC 封裝P2SH的各個場景script封…

ROS mapserver制作靜態地圖

ROS mapserver制作靜態地圖 靜態地圖構建 1、獲取一個PNG地圖&#xff0c;二值化 2、基于PNG地圖&#xff0c;生成PGM地圖&#xff0c;可以通過一些網站在線生成&#xff0c;例如Convertio 文件配置 1、將文件放置于/package/map路徑下。 2、編寫yaml文件&#xff0c;如下…

tree 樹組件大數據卡頓問題優化

問題背景 項目中有用到樹組件用來做文件目錄&#xff0c;但是由于這個樹組件的節點越來越多&#xff0c;導致頁面在滾動這個樹組件的時候瀏覽器就很容易卡死。這種問題基本上都是因為dom節點太多&#xff0c;導致的瀏覽器卡頓&#xff0c;這里很明顯就需要用到虛擬列表的技術&…

瀏覽器工作原理05 [#] 渲染流程(上):HTML、CSS和JavaScript是如何變成頁面的

引用 瀏覽器工作原理與實踐 一、提出問題 在上一篇文章中我們介紹了導航相關的流程&#xff0c;那導航被提交后又會怎么樣呢&#xff1f;就進入了渲染階段。這個階段很重要&#xff0c;了解其相關流程能讓你“看透”頁面是如何工作的&#xff0c;有了這些知識&#xff0c;你可…

DrissionPage爬蟲包實戰分享

一、爬蟲 1.1 爬蟲解釋 爬蟲簡單的說就是模擬人的瀏覽器行為&#xff0c;簡單的爬蟲是request請求網頁信息&#xff0c;然后對html數據進行解析得到自己需要的數據信息保存在本地。 1.2 爬蟲的思路 # 1.發送請求 # 2.獲取數據 # 3.解析數據 # 4.保存數據 1.3 爬蟲工具 Dris…

android 布局小知識點 隨記

1. 布局屬性的命名前綴規律 與父容器相關的前綴 layout_alignParent&#xff1a;相對于父容器的對齊方式。 例如&#xff1a;layout_alignParentTop"true"&#xff08;相對于父容器頂部對齊&#xff09;。layout_margin&#xff1a;與父容器或其他控件的邊距。 例如…

GeoDrive:基于三維幾何信息有精確動作控制的駕駛世界模型

25年5月來自北大、理想汽車和 UC Berkeley 的論文“GeoDrive: 3D Geometry-Informed Driving World Model with Precise Action Control”。 世界模型的最新進展徹底改變動態環境模擬&#xff0c;使系統能夠預見未來狀態并評估潛在行動。在自動駕駛中&#xff0c;這些功能可幫…

Java高頻面試之并發編程-25

hello啊&#xff0c;各位觀眾姥爺們&#xff01;&#xff01;&#xff01;本baby今天又來報道了&#xff01;哈哈哈哈哈嗝&#x1f436; 面試官&#xff1a;CAS都有哪些問題&#xff1f;如何解決&#xff1f; CAS 的問題及解決方案 CAS&#xff08;Compare and Swap&#xff0…

從碳基羊駝到硅基LLaMA:開源大模型家族的生物隱喻與技術進化全景

在人工智能的廣袤版圖上&#xff0c;一場從生物學羊駝到數字智能體的奇妙轉變正在上演。Meta推出的LLaMA(Large Language Model Meta AI)系列模型&#xff0c;不僅名字源自美洲駝(llama)&#xff0c;更以其開源特性和強大性能&#xff0c;引領了開源大模型社區的“駝類大爆發”…

可下載舊版app屏蔽更新的app市場

軟件介紹 手機用久了&#xff0c;app越來越臃腫&#xff0c;老手機卡頓成常態。這里給大家推薦個改善老手機使用體驗的方法&#xff0c;還能幫我們卸載不需要的app。 手機現狀 如今的app不斷更新&#xff0c;看似在優化&#xff0c;實則內存占用越來越大&#xff0c;對手機性…

Python_day47

作業&#xff1a;對比不同卷積層熱圖可視化的結果 一、不同卷積層的特征特性 卷積層類型特征類型特征抽象程度對輸入的依賴程度低層卷積層&#xff08;如第 1 - 3 層&#xff09;邊緣、紋理、顏色、簡單形狀等基礎特征低高&#xff0c;直接與輸入像素關聯中層卷積層&#xff08…

比較數據遷移后MySQL數據庫和達夢數據庫中的表

設計一個MySQL數據庫和達夢數據庫的表數據比較的詳細程序流程&#xff0c;兩張表是相同的結構&#xff0c;都有整型主鍵id字段&#xff0c;需要每次從數據庫分批取得2000條數據&#xff0c;用于比較&#xff0c;比較操作的同時可以再取2000條數據&#xff0c;等上一次比較完成之…

GC1808高性能24位立體聲音頻ADC芯片解析

1. 芯片概述 GC1808是一款24位立體聲音頻模數轉換器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采樣率&#xff0c;集成Δ-Σ調制器、數字抗混疊濾波器和高通濾波器&#xff0c;適用于高保真音頻采集場景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…

Linux 文本比較與處理工具:comm、uniq、diff、patch、sort 全解析

在類 UNIX 操作系統&#xff0c;特別是 Linux 系統中&#xff0c;命令行提供了一整套強大的文本處理工具&#xff0c;這些工具對于文件差異對比、內容篩選、文本排序以及源代碼管理尤為重要。今天&#xff0c;我們將結合真實示例&#xff0c;深入介紹并實戰演示 comm、uniq、di…

6月6日day46打卡

通道注意力(SE注意力) 知識點回顧&#xff1a; 不同CNN層的特征圖&#xff1a;不同通道的特征圖什么是注意力&#xff1a;注意力家族&#xff0c;類似于動物園&#xff0c;都是不同的模塊&#xff0c;好不好試了才知道。通道注意力&#xff1a;模型的定義和插入的位置通道注意力…

前端技能包

ES6 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body><script>// 變量定義var a1;let b5; // 現在使用let 定義變量// 對象解構let person{&quo…