第五課 C#語言基本元素概覽,初始類型,變量與方法,算法簡介

熟悉C#語言要求:對構成C#語言的基本元素,隨便拿出一個你都認識,對于常見基本元素,都能正確使用它

精通C#語言要求:對于構成C#語言的基本元素,隨便拿出一個都會使用,對于常用基本元素,你不但會使用,還不會出錯時要在更深層次理解這些基本元素,了解背后運行的機制

文章目錄

  • 構成C#語言的基本元素
    • 標記(Token)——六種基本元素
      • 關鍵字(Keyword)—詞匯
      • 操作符(Opertator)—運算符
      • 標識符(Identifier)—標記
      • 標點符號
      • 文本(字面值)
      • 注釋與空白
  • 簡要介紹類型、變量與方法
      • 初始類型(Type)
      • 變量
      • 方法
  • 算法簡介
      • 作業

構成C#語言的基本元素

標記(Token)——六種基本元素

關鍵字(Keyword)—詞匯

構成一門編程語言的基本詞匯,漢語常用詞匯量七八萬,英語常用詞匯量也是七八萬,C#是高級編程語言,它設計的初衷是用近似人類自然語言的語法,來表達編程邏輯,所以C#語言是人類自然語言一個非常非常小的子集,小到它的詞匯量只要能夠表達人類邏輯思維就行了,多余詞匯就去掉不要了,C#語言有接近一百個詞匯(關鍵字)

image-20240703042611397

注意:

1,有些關鍵字有多個用途

2,關鍵字是按邏輯分組的

image-20240703043533021

操作符(Opertator)—運算符

操作符也叫運算符,顧名思義是用來表達運算思想的符號,一共三四十個,分為以下幾類:

Primary:基本操作符

x.y 點操作符

f(x) a[x] x++ x-- new typeof checked unchecked default(T) delegate sizeof ->

Unary:一元運算符,單目運算符,只能去操作一個操作數

+x -x !x ~x ++x —x (T)x &x *x

Multiplicative:乘法性操作符

x*y x/y x%y

Additive:加法性操作符

x+y x-y

shift: 位移(將內存中的一個數向左移向右移)

x<>y

Relational and type testing:關系操作符(比大小)和類型檢驗操作符(檢驗一個對象到底是不是一個類的實例)

xy x<=y x>=y is as

Equality:相等性操作符

x==y x != y

Logical AND: x&y

Logical XOR: x^y

Logical OR: x|y

Conditional AND : x && y

Conditional OR: x||y

Null-coalescing: x??y

Conditional: ?:

Assignment and lambda expression:

x=y x+=y x-=y x*=y x/=y x%=y x&=y x|=y

x^=y x<<=y x>>=y =>

標識符(Identifier)—標記

什么是標識符

俗話來說就是名字,取名起名字。給變量,類,類的成員(屬性,方法,事件)起的名字都叫標識符,就像給人取名字有規范一樣,給變量,類,類的成員起名字也有嚴格的規范

什么是合法的標識符?

1.首先一個標識符不能跟關鍵字沖突,關鍵字又叫保留字(這門編程語言已經把這個單詞保留了,不能把這個單詞當作標識符使用)

2.可以用字母(包括大寫字母小寫字母),數字和下劃線,來組成標識符,但是不能拿數字開頭,可以拿字母和下劃線開頭

符合這些規范的標識符是合法標識符

例外:如果想拿關鍵字當標識符,前面加上@符號

——怎樣閱讀C#語言定義文檔(C#語言里的憲法)

image-20240703070307765

大小寫規范

駝峰命名法:幾個單詞合一起,頭一個單詞首字母小寫,后面的單詞開頭字母大寫,這叫駝峰法,變量名都是用駝峰法

帕斯卡命名法:構成標識符的每個單詞的首字母大寫,其他字母都小寫。名稱空間名,類名,方法名都是用這個方法命名

命名規范

在給變量,類,類的成員命名的時候,要求變量名,類名,類的成員名要有意義,保證代碼的可讀性強。

對類命名的時候,類的名字一定要是一個名詞

對類的成員命名的時候,屬性一定要是一個名詞

方法一定要是一個動詞,或者動詞短語,因為它表示一個類能夠做什么

標點符號

; {}

文本(字面值)

(1)整數

int x=2; //普通整型:用32個比特位存儲這個整數

long y=3L; //長整型:整數加上后綴L,變成長整型,用64個比特位存儲3這個整數

它們是用二進制來表示的

(2)實數(小數)

float x= 3.0; //用32個比特位表示一個浮點數

double y=4.0D; //用64個比特位表示一個浮點數

(3)字符

char c=‘a’; //單引號里只能有一個字符,為一個字符類型的變量賦值

(4)字符串

string str=“ABCDE”; // 雙引號

string str=“a”;

區別:字符和字符串,類型完全不同

(5)布爾

bool b=true;

bool b2=false;

左邊的是變量,右邊的是文本

(6)空(null)

關鍵字,操作符,標識符,標點符號,文本統稱為標記(Token),標記就是對于編譯器來說,有意義的記號,編譯器能夠識別出這些東西

注釋與空白

單行注釋 //

塊注釋

/* string str = null;
Form f = null;
f.ShowDialog();
*/

空白

Form f = new Form();
f.ShowDialog();

編譯器會把注釋和空白忽略掉,注釋與空白對于編譯器來說沒有意義,所以不算在標記(Tonken)之內

簡要介紹類型、變量與方法

初始類型(Type)

也稱數據類型(Data Type)

  //var x = 3;   //Int32//Console.WriteLine(x.GetType().Name);//var x = 3L;   //Int64//Console.WriteLine(x.GetType().Name);//數據類型不一樣,在內存中存儲的形式不一樣//var x = 3.0;   //Double//Console.WriteLine(x.GetType().Name);var x = 3.0F;   //Single:單精度浮點型Console.WriteLine(x.GetType().Name);//var自動獲得變量的類型int x;x = 100;Console.WriteLine(x.GetType().Name);float x1;x1 = 3.0F;   //Single,后面要加f,大小寫均可Console.WriteLine(x1.GetType().Name); Double x2;x2= 3.0;      //Double Console.WriteLine(x2.GetType().Name);

變量

變量是存放數據的地方,簡稱“數據”

聲明變量格式

變量類型 變量名=初始值;

變量類型有14種

a.有符號的整型變量
能存儲正負數和0 下面給出大概范圍(賦值時超出范圍會報錯)

sbyte -128~127
int -21億~21億
short -32768~32767
long -9百萬兆~9百萬兆
示例代碼

sbyte a = 1;Console.WriteLine("存儲的數:"+a); //輸出之間的連接用+

b.無符號的整型變量
能存儲一定范圍0和正數

byte 0~255
uint 0~42億
ushort 0~65535
ulong 0~18百萬兆
c.浮點數
float 存儲7或8位有效數字,具體取決于編譯器 四舍五入 從左到右非0數開始算有效數字
double 存儲15~17位有效數字 C#中聲明小數默認double類型
decimal 存儲27~28位

float f = 0.1234f; //后面要加f 大小寫均可double d = 0.12456434;decimal de = 0.124543534234t254m; //后面要加m 大小寫均可

d.特殊類型
bool 變量值為true或false 表示真假數據類型
char 存儲單個字符 單引號括住要賦的值
string 存儲字符串 雙引號括住要賦的值

string s1="hello", s2="world", s3="good"; //數據類型相同的多個變量可以同時聲明

方法

舊稱函數,成員函數,是處理數據的邏輯,又稱為“算法”。方法可以理解為數據的加工廠,你把原料送進去,加工廠加工后把原料返還給你,這就是方法,方法就是數據的加工廠

方法的聲明

方法的調用

三類常見的方法:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace MyExample3
{class Program{static void Main(string[] args){//方法的聲明//方法的調用Caculator c = new Caculator();//int x= c.Add(2, 3);// Console.WriteLine(x);//string str = c.Today();//Console.WriteLine(str);c.PrintSum(4, 6);}}class   Caculator{//有數據輸入,有數據輸出public int Add(int a, int b){     //定義方法,為了能夠在類的外面能夠訪問方法,要加上publicint result = a + b;return result;  //把結果拿到后返回給調用方法的人}//2.沒有數據輸入,有數據輸出public string Today(){int day = DateTime.Now.Day;return day.ToString();}//3.有數據輸入,沒有數據輸出,返回類型要用voidpublic void PrintSum(int a,int b){int result = a + b;Console.WriteLine(result);}}
}

程序=數據+算法

有了變量和方法就可以寫有意義的程序了

算法簡介

循環

遞歸

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace MyExample2
{class Program{static void Main(string[] args){Caculator c = new Caculator();int result = c.SumForm1ToX(3);Console.WriteLine(result);}}class Caculator{// 循環思想:占用內存比較少//public int SumForm1ToX(int x)// {//     int result = 0;//     for (int i =1; i < x+1; i++)//     {//          result = result + i;//     }//     return result;// }//遞歸思想;占用內存比較多//public int SumForm1ToX(int x)//{//    if (x==1)//    {//        return 1;//    }//    else//    {//        int result = x + SumForm1ToX(x - 1);//        return result;//    }//}public int SumForm1ToX(int x){//數學算式return (1 + x) * x / 2;}}
}

作業

image-20240704182448725

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

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

相關文章

LLM學習:大模型基礎——視覺大模型以及autodl使用

1、常見的VLM 在大模型中,VLM 是視覺語言模型(Vision-Language Model)的縮寫,是一種多模態、生成式 AI 模型,能夠理解和處理視頻、圖像和文本。 VLM 通過將大語言模型(LLM)與視覺編碼器相結合構建而成,使 LLM 具有 “看” 的能力,從而可以處理并提供對提示中的…

Vue—路由配置中設置了meta.title,但頁面標題仍然顯示為“Vite App“?【讓我來看看~】

路由配置中明明設置了meta.title&#xff0c;但是頁面標題仍然顯示為"Vite App"&#xff1f;這是因為僅僅在路由配置中設置meta.title是不夠的&#xff0c;還需要在路由守衛中動態設置頁面標題。需要做以下幾件事來正確設置頁面標題&#xff1a;1.首先更新HTML文件的…

【機器學習】綜合實訓(二)

項目五 電影評分預測【教學內容】使用 MovieLens 數據集&#xff0c;訓練一個模型預測用戶對電影的評分。主要有以下幾個知識點&#xff1a;&#xff08;1&#xff09;數據加載與探索性分析&#xff08;EDA&#xff09;。&#xff08;2&#xff09;處理稀疏數據&#xff08;如用…

STM32 UART + DMA + 空閑中斷使用中的幀錯誤(FE)問題及解決方案

STM32 UART + DMA + IDLE中斷使用中的幀錯誤(FE)問題及解決方案 在我調試STM32H7串口空閑中斷DMA接受時遇到了一個bug,這個現象發生在系統剛上電時,有個串口由于幀錯誤FE掛起了中斷,之后在HAL_UART_IRQHandler這個全局中斷處理函數結束后,所有的中斷使能標志位都被清除了,經過…

TDengine 選擇函數 BOTTOM() 用戶手冊

BOTTOM() 函數用戶手冊 函數定義 BOTTOM(expr, k)功能說明 BOTTOM() 函數統計表/超級表中某列的值最小 k 個非 NULL 值。如果多條數據取值一樣&#xff0c;全部取用又會超出 k 條限制時&#xff0c;系統會從相同值中隨機選取符合要求的數量返回。 返回值 數據類型: 同應用…

西門子 S7-200 SMART PLC 實現星三角降壓啟動控制:原理、案例與完整程序

在工業控制場景中&#xff0c;中型異步電機直接啟動時會產生遠超額定電流的沖擊電流&#xff08;通常為額定電流的 5-7 倍&#xff09;&#xff0c;不僅會影響電網穩定性&#xff0c;還可能對機械設備造成損傷。星三角&#xff08;Y-Δ&#xff09;降壓啟動是解決這一問題的經典…

【Android】View 的基礎知識

【Android】View 的基礎知識 1. 什么是 View&#xff1f; View 是 Android 中所有UI組件的基礎類。它表示屏幕上的一個矩形區域&#xff0c;負責繪制內容和處理用戶交互事件。所有的 UI 組件&#xff08;如按鈕、文本框等&#xff09;都是 View 的子類&#xff0c;而 ViewGroup…

西門子 S7-200 SMART PLC 實現電機點動與連續運行綜合控制

在工業生產中&#xff0c;電機控制并非單一模式&#xff1a;調試設備時需要 “按動即轉、松開即停” 的點動功能&#xff0c;正常生產時則需要 “一鍵啟動、持續運行” 的連續控制。本文以西門子 S7-200 SMART PLC 為載體&#xff0c;詳細講解電機點動控制原理&#xff0c;并設…

如何解決pip安裝報錯ModuleNotFoundError: No module named ‘sphinx-rtd-theme’問題

【Python系列Bug修復PyCharm控制臺pip install報錯】如何解決pip安裝報錯ModuleNotFoundError: No module named ‘sphinx-rtd-theme’問題 摘要 在使用 PyCharm 開發 Python 項目時&#xff0c;pip install 報錯是常見痛點。特別是在構建文檔或引入第三方庫時&#xff0c;開…

HakcMyVM-Literal

目錄信息搜集漏洞利用權限提升信息搜集 主機發現 ┌──(kali?kali)-[~] └─$ nmap -sn 192.168.21.0/24 Nmap scan report for 192.168.21.5端口掃描 ┌──(kali?kali)-[~] └─$ nmap -sS -sV -O -p- 192.168.21.5 Starting Nmap 7.95 ( https://nmap.org ) a…

0904 類的繼承

Part 1.梳理思維導圖一.繼承中的特殊成員函數1.構造函數父類的構造函數會被繼承到子類中&#xff0c;在構造的順序中&#xff0c;是先構造父類&#xff0c;再構造子類#include <iostream>using namespace std;class Father { public:string name; protected:int *age; pr…

PDF教程|如何把想要的網頁保存下來?

前段時間有個小伙伴咨詢了小白&#xff1a;領導想要某個網頁的整個頁面&#xff0c;有沒有比較好的方法把它保存下來&#xff1f; 在他找到小白之前&#xff0c;這種事情他已經接到好幾次了&#xff0c;每次都是怎么解決的呢&#xff1f;其實很簡單&#xff0c;就是打開Word&a…

【bash】命令查看當前目錄下文件個數

要用 ls 查看當前目錄下的文件個數&#xff0c;可以結合 wc -l 來統計行數&#xff1a; ls -1 | wc -l說明&#xff1a; ls -1&#xff1a;以一行一個文件的方式列出。wc -l&#xff1a;統計行數&#xff0c;也就是文件/目錄的數量。 ?? 需要注意&#xff1a; 這個方法會把文…

「日拱一碼」081 機器學習——梯度增強特征選擇GBFS

目錄 什么是梯度增強特征選擇&#xff08;GBFS&#xff09; 為什么 GBM 適合做特征選擇 GBFS 的一般步驟 代碼示例 什么是梯度增強特征選擇&#xff08;GBFS&#xff09; GBFS 并非一個像 Lasso 或隨機森林那樣有嚴格標準定義的獨立算法&#xff0c;而是一種基于梯度提升機…

解構匯編, 萬物起源

匯編的誕生匯編全景圖核心主干: CPU架構主要分支: 語法和工具共同的地貌: 核心概念延伸: 跨平臺 & 跨架構跨平臺跨架構總結以 GAS vs. NASM 為例NASM 不支持跨架構 ≠ 無法在ARM架構上的系統安裝匯編的誕生 機器語言的困境 早期的程序員直接使用機器語言進行編程機器語言由…

廣州旅游網站系統 - 純靜態旅游展示平臺

&#x1f31f; 廣州旅游網站系統 - 純靜態旅游展示平臺觀世界才有世界觀 - 一個集景區展示、旅游攻略、文化傳播于一體的精美旅游網站&#x1f4cb; 項目概述 這是一個專注于廣州旅游文化的純靜態網站系統&#xff0c;采用現代化的前端技術棧&#xff0c;為游客提供全方位的廣州…

Qt UDP通信學習

Qt UDP通信學習 一、項目概述 本項目基于Qt框架實現了UDP通信功能&#xff0c;支持單播與廣播消息收發&#xff0c;展示了UDP套接字的基本用法&#xff0c;適合初學者學習Qt網絡模塊的實際應用。 二、項目結構 55.pro&#xff1a;Qt工程文件&#xff0c;配置模塊與源碼文件main…

古德哈特定律(Goodhart‘s Law)

古德哈特定律&#xff08;Goodhart’s Law&#xff09;表述為“當一個指標變成了目標&#xff0c;它將不再是個好指標”。 該定律由英國經濟學家查爾斯古德哈特&#xff08;Charles Goodhart&#xff09;在1975年提出&#xff0c;最初用于批判撒切爾夫人政府的貨幣主義政策&…

在 ASP.NET Core 8 Web API 中實現基于角色的授權 安全且可擴展 API 的最佳實踐

掌握基于角色的授權&#xff1a;使用專家策略保護您的 ASP.NET Core 8 Web API。在 ASP.NET Core 8 Web API 中實現基于角色的授權&#xff1a;安全且可擴展 API 的最佳實踐介紹授權是任何 Web 應用程序的關鍵組件。在開發 API 時&#xff0c;使用基于角色的授權保護端點可確保…

AutoHotkey識別圖片

一、下載ImagePut插件 下載地址&#xff1a;GitHub - iseahound/ImagePut: A core library for images in AutoHotkey. Supports AutoHotkey v1 and v2. 二、將插件和要搜索的圖片導入項目 #Include ./plugin/ImagePut.ahk ; 截取當前屏幕 pic : ImagePutBuffer(0) point : p…