C#語言基礎

来源:http://www.cnblogs.com/H2921306656/archive/2016/06/18/5597049.html
-Advertisement-
Play Games

第一部分 瞭解C# C#是微軟公司在2000年7月發佈的一種全新且簡單、安全、面向對象的程式設計語言,是專門為.NET的應用而開發的。體現了當今最新的程式設計技術的功能和精華。.NET框架為C#提供了一個強大的、易用的、邏輯結構一致的設計環境。其特點: 語言簡潔 保留了C++的強大功能; 快速應用開 ...


第一部分 瞭解C#

C#是微軟公司在2000年7月發佈的一種全新且簡單、安全、面向對象的程式設計語言,是專門為.NET的應用而開發的。體現了當今最新的程式設計技術的功能和精華。.NET框架為C#提供了一個強大的、易用的、邏輯結構一致的設計環境。其特點:

  • 語言簡潔
  • 保留了C++的強大功能;
  • 快速應用開發功能;
  • 語言的的自由性;
  • 強大的Web伺服器控制項;
  • 支持跨平臺;
  • 與XML相融合;

第二部分 C#語言基礎;

一、C#項目的組成結構;

1、項目尾碼

.config——配置文件(存放配置參數文件)

.csproj——項目文件(管理文件項)

.sln——解決方案文件(管理項目)

.cs——源文件(程式代碼)

註:尾碼不同代表文件類型也不同,這些文件尾碼類型會在“解決方案資源管理器”中看到。

2、函數的四要素:名稱,輸入,輸出,加工。

3、主函數,輸出語句,輸入語句:

//命名空間

namespace ConsoleApplication1

{//類

    class Program

    {

        //程式的入口

static void Main(string[] args)

        {

           //輸出語句,列印不換行

           Console.Write("這是我的第一個C#程式!");

           //輸出語句,列印完成換行

           Console.WriteLine("Hello world!");

           //輸入語句,等待直到接收到回車命令為止,獲取一整行內容

           //一個等號表示賦值號

           string s = Console.ReadLine();

           Console.WriteLine(s);

           Console.ReadLine();

                  }

 }

  }

註意:●輸出:

Console.WriteLine("這是我的第一個程式。");

Console.WriteLine("這是第二行代碼。");

Console.Write("這是要輸出的文字。");註意:沒有換行

註意:

1.大小寫敏感;

2.所有的符號全都用英文;

3.不要漏掉;。

●輸入:

string s = Console.ReadLine();

//這句話的意思是從控制台程式讀取一整行內容放到s這個容器裡面

Console.WriteLine("你剛剛輸入的是:"+s);

string -字元串類型

s -變數名

= -賦值

Console.ReadLine(); - 從控制台程式讀取一整行

4、快捷鍵的使用

● Alt + →提示,需要執行程式時點擊啟動或Ctrl+F5;

● ctrl + K(ctrl + E), 然後按ctrl + C,註釋本行(軟體工具欄中有快捷圖標);

● ctrl + K(ctrl + E), 然後按ctrl + U,取消註釋(軟體工具欄中有快捷圖標);

● Shift + delete,一刪刪一行;

● Ctrl + X,剪切一行;Ctrl + Z,回覆;

● Ctrl + Shift + Space,將游標放在方法函數括弧裡面時使用,顯示重載

5、註意事項

(1)、註釋和[取消註釋]:

● 選中相應的行,點擊工具欄中的註釋選中行[取消註釋選中行];

● 選中相應的行,使用快捷鍵:Ctrl+K Ctrl+C [Ctrl+K Ctrl+U]

● 手動註釋:在不要的行前面加//(註釋一整行)

● 註釋其中一段代碼:/*這裡面是代碼 */

● 註釋的作用://這兩行是輸出的功能

技巧:

● 寫的代碼儘量使用智能感知功能;

● 先寫總體,再完善細節;

● 自動完成單詞功能。Alt+→

例如:/*表示註釋一段內容

       Console.Write("請輸入你的姓名:");

       string name = Console.ReadLine();

       Console.Write("請輸入你的年齡:");

       string age = Console.ReadLine();

       Console.Write("\n");

       //第一種方式

       //Console.WriteLine("你的姓名是"+name+",今年"+age+"歲了。");*/

       //加號在遇到string類型的時候表示拼接

       //第二種方式

       //Console.WriteLine("你的姓名是{0},今年{1}歲了。",name,age);

       //Console.ReadLine();

(2)、在一行聲明相同類型的多個變數之間用逗號分開。

例:int a, b;//聲明變數類型,用逗號隔開

(3)、同一語句中,不能對同一個變數名聲明成同一類型兩次。

例:int a = 4; int a = 5;//錯誤

綜上練習題:案例:輸入姓名,年齡,單位,

              整合成一個流暢的句子顯示出來。

主要程式:Console.Write ("請輸入你的姓名:");

           string name = Console.ReadLine();

           Console.Write("請輸入你的年齡:");

           string age = Console.ReadLine();

           Console.Write("請輸入你的單位:");

           string danwei = Console.ReadLine();

           Console.WriteLine("你的姓名是"+a+",今年"+b+"歲了,在"+c+"實訓");

           Console.ReadLine();

"你的名字是***,今年**歲了,在**實訓。"將a,b,c代入***。

"你的名字是"+a+",今年"+b+"歲了,在"+c+"實訓。"

 

二、數據類型

大類

小類

C#語言

.net語言(通用語言)

說明

大小(位元組)

值區間

基本數據類型(值類型)

整型

sbyte

SByte

8位有符號整數

1

-128~127(負的2的7次方~正的2的7次方減1)

short

Int16

16位有符號整數

2

-32768~32767(負的2的15次方~正的2的15次方減1)

int

Int32

32位有符號整數

3

(負的2的31次方~正的2的31次方減1)

long

Int64

64位有符號整數

4

(負的2的63次方~正的2的63次方減1)

byte

Byte

8位無符號整數

1

0~255 (0~2的8次方減1)

ushort

UInt16

16位無符號整數

2

(0~2的16次方減1)

uint

UInt32

32位無符號整數

3

(0~2的32次方減1)

ulong

UInt64

64位無符號整數

4

(0~2的64次方減1)

浮點型

float

Single

32位單精度浮點數

4

1.5 × 10−45 到 3.4 × 1038

double

Double

64位雙精度浮點數

8

5.0 × 10−324 到 1.7 × 10308

decimal

Decimal

128精確浮點數

16

1.0 × 10−28 到大約 7.9 × 1028

字元型

char

Char

16位Unicode字元,放在''里的是字元

2

任意字元

布爾型

bool

Boolean

表示true或者false

1

True或Flase

日期時間

datetime

DateTime

     

結構體

struct

Struct

     

枚舉類型

enum

Enum

     

引用類型

字元串類型

string

String

   

字元序列

         

數組

         

集合

         

1、基本數據類型:值類型

⑴、整數類型:int(最常用)

int a = 2;

⑵、浮點型:double(最常用)是C#預設小數類型,float用需加尾碼f,decimal用需加尾碼m。

double b = 3.14;

a = (int)b;

float c = 3.14f;

decimal d = 3.14m;

⑶、布爾型:用於判斷,只允許放TRUE或者FALSE。

bool e = false;

e = true;

2、引用類型:字元串型string,長度較長,定義時用雙引號。

string ss = "Hello world!";

Console.WriteLine(e);

3、類類型

object 所有其他類型的最終基類

4、介面類型:interface

三、C#轉義字元

\’ 單引號     \” 雙引號     \\ 反斜杠   \0 空

\a 警告(產生峰鳴)   \b 退格    \f 換頁   \n 換行

\r 回車     \t 水平製表符         \v 垂直製表符

四、變數、常量

1、變數名的命名規則:

●變數名組成:字母,數字,下劃線,@,漢字。

●首字母只能用字母,下劃線,@,漢字

●不能與關鍵字重名

2、變數的定義:

數據類型  變數名 [=值];   //[]內的值可以不寫

例子:int  a=1;

註意:int a, b;//聲明變數類型,用逗號隔開

      int a = 4; int a = 5;//錯誤

3、常量:只能夠取值,不能重新賦值

       const int f = 5;

       f = 7;錯誤,不能重新賦值

4、變數名前加關鍵字(不能賦值,只能取值):const

例子:const  int a=1;

五、基本的類型轉換

1、自動轉換(隱式轉換)--從值類型轉換到引用類型時候

2、強制轉換(顯式轉換)--從引用類型轉換到值類型時候,或者從浮點型轉換到整形

當從一個引用類型轉換到值類型時,必須引用類型中的數據元素,能夠轉換成值類型的容量範圍內的數據才行,否則不能轉。

⑴、用(),註:在被轉換的數據左邊加上小括弧:(要被轉換成的數據類型);

例子:int a;double b=12.3;a=(int)b;

⑵、用convert;

例子: int a;    float c;    double b=12.3;

a=convert.ToInt32(b);

c=convert.Tosingle(b);

⑶、用parse,常用;

例子: int a;  double b=12.3;

a=int.parse(b);

註:int a = 2;

string s = a.ToString();

例子:輸入三個數,求它們的和、差、積、商。

Console.WriteLine("請輸入a=");

double a = double.Parse(Console.ReadLine());

Console.WriteLine("請輸入b=");

double b = double.Parse(Console.ReadLine());

Console.WriteLine("兩個數的和為{0},兩個數的差為{1},兩個數的乘積為{2},兩個數的商為{3}",a+b,a-b,a*b,a/b);

Console.ReadLine();

 

六、運算符

 

分類

符號

解釋

優先順序

 

算數

++   --

加加   減減

由高到低,即執行順序由上到下.(圓括弧的優先順序最高)

*/%

乘  除  取餘

+  -

加  減

關係

>    <    >=     <=

大於 小於 大於等於   小於等於

==     !=

等於  不等於

 

邏輯

&&

與(並且)

||

!

非(註:優先順序在此表的最頂層)

條件運算符

?:

惟一的一個三元運算符  如果

賦值

=    +=  -=    *=    /=   %=

如:x-=4.即x=x-4;

1、算數運算符:

⑴、+  -

int a = 2; int b = 5;

Console.WriteLine(a+b)

⑵*  /  % 

int a = 10 % 3;

Console.WriteLine(a);

Console.ReadLine();

註意:

●做除法運算的時候,如果兩個操作都是整數,則運算之後的結果也是整數。

●做算數運算的時候,如果兩個被操作的數不是同一類型,則會在運算的時候會自動進行類型轉換。

備註:%  模   取餘的用途

●判斷a是不是b的倍數(是否能夠整除)====>a%b是否==0

●判斷a的個位是不是b====>a%10是否==b

●把數變成某個範圍之內的數(利用餘數一定比除數小的定理,比如十六進位裡面最大的單個數是F(15))

⑶、++  --

int a =5;

int b= a++;  ====>可以寫成int b =a; a = a+1;

int c = ++a;====>可以寫成a = a+1; int c =a;

運算出來的結果就是

b = 5;

c = 7;

註意:●++  --這兩種運算只能應用於變數(5++是不對的!!常量也是不可以使用的!!)

●前++和後++的區別:加加在前,先運算再賦值;加加在後,先賦值再運算。

int a = 5;

int b = a++;//int b=a;a=a+1;

int c = ++a;//a=a+1;int c=a;

Console.WriteLine(a);

Console.WriteLine(b);

Console.WriteLine(c);

Console.ReadLine();

2、關係運算符:

==  !=  >  <  >=  <=

關係運算符運算結果統統是bool型(結果不是Ture就是False)

 

int a = 5;

int b = 6;

Console.WriteLine(a == b);   ====>False

Console.WriteLine(a != b);   ====>True

Console.WriteLine(a > b);    ====>False

Console.WriteLine(a < b);    ====>True

Console.WriteLine(a >= b);   ====>False

Console.WriteLine(a <= b);   ====>True

 

註意:==    不能寫成 =(一個=是賦值的意思)

3、邏輯運算符:

⑴、&&====>兩個條件都成立,結果為True,否則False

bool a = 3 > 2 && 3 < 7;//true

⑵、||====>兩個條件只要有一個成立,結果為True,兩個都不成立為False

bool b = 5 > 3 || 5 > 7;//true

⑶、!====>將原來的結果取相反的(若本來為True,取反就是False)

bool c = !(5 > 3) || 5 > 7;//false

Console.WriteLine(c);

Console.ReadLine();

4、其他運算

= ====>賦值運算,將後面的值賦給左側的變數。(註意:只能是變數)

+=  -=  *=  /=  %=  ====>複合運算符(例:a += b;(意思是a = a +b;))

int a = 6;

a += 7;//a=a+7;

a *= 2;//a=a*2;

a %= 4;//a=a%4;

Console.WriteLine(a);

Console.ReadLine();

5、條件運算符:?

例題1:老狼老狼幾點了?   若是上午出現am,下午出現pm,若是下午,需要報時的時候減去12。

Console.Write("老狼老狼幾點了?");

int time = int.Parse( Console.ReadLine());

string s = time > 12 ? (time-12)+"pm" : time+"am";

Console.WriteLine(s);

Console.ReadLine();

例題2:鍵盤鍵入三個數,找出來最大的數。

Console.Write("輸入一個a值");

double a = double.Parse(Console.ReadLine());

Console.Write("輸入一個b值");

double b = double.Parse(Console.ReadLine());

Console.Write("輸入一個c值");

double c = double.Parse(Console.ReadLine());

//double  d =a>b ? a:b;

//double e = d > c ? d : c;

double e = (a > b ? a : b) > c ? (a > b ? a : b) : c;

Console.WriteLine("最大的數是"+e);

Console.ReadLine();


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 基本概念 塊設備(blockdevice) 是一種具有一定結構的隨機存取設備,對這種設備的讀寫是按塊進行的,他使用緩衝區來存放暫時的數據,待條件成熟後,從緩存一次性寫入設備或者從設備一次性讀到緩衝區。 字元設備(Character device) 是一個順序的數據流設備,對這種設備的讀寫是按字元進行 ...
  • Clonezilla是一個用於Linux,Free-Net-OpenBSD,Mac OS X,Windows以及Minix的分區和磁碟克隆程式。它支持所有主要的文件系統,包括EXT,NTFS,FAT,XFS,JFS和Btrfs,LVM2,以及VMWare的企業集群文件系統VMFS3和VMFS5。Cl ...
  • REMI 倉庫提供了CentOS和RHEL的核心包的更新版本,尤其是最新的PHP/MySQL系列(註:當你需要一個更新包,而 CentOS/RHEL 沒有及時提供更新時, REMI 倉庫可以幫助你)。 安裝REMI倉庫要記住不要在啟用了REMI倉庫時運行yum update。因為REMI倉庫的包名與 ...
  • 最近在學習unix,但在使用ftp鏈接虛擬機時總是總是各種報錯,查了很多資料,試了很多方法,都有一定的問題,最後也算是久病成醫,這裡給其他跟我一樣小白提供一個比較好的解決方案希望能有所幫助。 Fedora vsftp更新了很多版本更新,我本人認為Fedora vsftp 在Fedora系列里很好使的 ...
  • C# 引用類型和值類型 CLR支持兩種類型:引用類型和值類型。 1.引用類型 (1)記憶體必須從托管堆上分配; (2)堆上分配的每個對象都有一些額外成員(包括“類型對象指針”,“同步塊索引”),這些成員必須初始化; (3)對象的其他位元組總是設為零; (4)從托管堆分配對象時,可能強制執行一次垃圾回收。 ...
  • 分類:C#、VS2015 創建日期:2016-06-19 使用教材:(十二五國家級規劃教材)《C#程式設計及應用教程》(第3版) 一、要點概述 別人提供的類都是為了簡化你的工作量用的,可是實際處理的事情千差萬別,要通過寫代碼做實際的事,你還得自己定義類。因此,先把如何自定義類及其涉及的相關概念和要點... ...
  • .Net中提供了許多方便使用的方法,包括在處理文件中查找文件、拷貝文件等,今天實現的是通過簡易的程式實現增量的備份文件。 首先需要的是選擇備份源文件路徑SourcePath和備份目標文件路徑DestinationPath,然後通過StopWatch統計拷貝所耗費的時間。(註意:使用StopWatch ...
  • C# Code 1 2 3 4 5 6 7 8 9 10 ... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...