我們為之奮斗過的C#-----C#的一個簡單理解


                               我們首先來簡單敘述一下什么是.NET,以及C#的一個簡單理解和他們倆的一個區別.

1 .NET概述

.NET是Microsoft.NET的簡稱,是基於Windows平台的一種技術.它包含了能在.NET Framework平台運行的所有編程語言.

2 C#概述

他是專門為.NET平台設計的一種語言.

3 .NET與C#的區別

.NET是一種平台,這種平台可以編譯多種語言例如:VB,J#,而C#只是一種語言.

4 IDE

IDE全稱(Itergrated Developer Environment)微軟提供的強大集成開發環境.

                     在C#中創建你的第一個C#程序

1怎樣在Visual Studio 2012中新建項目

①先在Visual studio 菜單欄中選擇”文件”→”新建”→”項目”選項,接着會彈出”新建項目”

②在左側的項目類型中選擇”VisualC#”在右側的模板列表中選擇”控制台應用”選項.強調一下千萬別選錯了.

③在”名稱”中輸入想創建的項目名.

④為項目選擇一個保存的位置.點擊確定按鈕,就創建了一個C#代碼模塊.

             在C#中如何在控制台輸出 ,如何讓屏幕停留 的方法.                       

1關鍵代碼

在Main()方法中添加以下代碼是用來輸出和輸入的:

Console.WriteLine();//從控制台輸出內容;
 Console.Write();//如果不加Line輸出的內容會在同一行顯示;
 Console.ReadLine();//從控制台輸入,讓屏幕停留;
 Console.ReadKey();//讓屏幕停留;

 

              C#中Main()方法的四種形式

Main()方法的返回值只能是void 或int類型.

Static void Main(string[] args){} Static int Main(string[] args){} Static void Main(){} Static int Main(){}

 

當創建一個新項目時編譯器會創建第一個形式的Main()方法.

                     C#中的數據類型

 int 整型;

 float浮點型(一般很少用到,用double代替即可.);

 double 雙精度浮點型;

 string 字符串型(在C#中字符串型的關鍵字是小寫的);

 bool 布爾型(在C#中布爾型關鍵字為bool);

                      C#中的常量

01什么是常量:

常量就是在程序運行過程中保持不變的值. 

02語法:const 數據類型 常量名稱=值;

例:const int age=19;(他在后續代碼的書寫中不能改變他的值.)

              下面給大家介紹一種技術 海量代碼折疊技術

快捷鍵 Ctrl+K+S;

#region (可以提供這段代碼用途說明)

  //代碼

#endregion

                  占位符的應用

占位符和Java中的+連接符作用是一樣,但用占位符比較方便代碼的書寫;

Eg;

 string name; int age; Console.WriteLine(“請輸入姓名:”); name=ConsoleReadLine(); Console.WriteLine(“請輸入年齡:”); age=int.Prase(ConsoleReadLine()); Console.WriteLine(“姓名為:{0};年齡為:{1}.”,name,age); Console.ReadLine();

 

                     C#中的兩種命名法的簡單介紹

 01.駱駝命名法(Camel):

簡單的說就首寫字母小寫,后續有含義的單詞大寫(只針對於變量命名);

例:cardName cardNumber;

 02.帕斯卡命名法(Pascal):

 所有單詞的首字母都大寫(針對於類名和方法名);

 例:InputName SayHellow();

            將接收到得數據轉化成int類型這里只講一種如果想轉化成double方法是一樣

 

 Console.WriteLine(“請輸入一個數字:”); string num=int.Parse(Console.ReadLine());

 

             C#中的文檔注釋

 C#中的文檔注釋和Java是有區別的:

 在Java中文檔注釋:  /** */

 在C#中文檔注釋為:///需寫在方法上;

 

 /// <summary>

  /// 寫對這個方法的一個說明,有利於在方法調用的時候知道這個方法是干什么的. /// </summary>

  /// <returns>寫返回的是什么樣的值</returns>

 

             C#中類,對象和方法.

01.什么是類:

具有相同屬性和行為的一系列事物的統稱.

02.什么是對象:

對象是能在現實生活中找到的某個能區別於其他事物的一個獨特個體。

03.類和對象的關系:

類是對象的模板,對象是類的實例.

 

看到這我想大家都覺得非常的枯燥乏味了吧!下面一起來看個關於C#的一個笑話開心開心吧!

這是個面試的笑話:

面試官:熟悉哪些語言?

應聘者:C#

面試官:知道什么叫類嗎?

應聘者:我這人實在,工作努力,不知道什么類.

面試官:知道什么是包嗎?

應聘者:我這人實在,平常不帶包,也不用公司准備了.

面試官:知道什么是接口嗎?

應聘者:我這個工作認真,從來不找借口偷懶.

面試官:知道什么是繼承嗎?

應聘者:我是孤兒沒什么可繼承的.

面試官:知道什么叫對象嗎?

應聘者:知道,我工作努力,上進心強,暫時沒有找對象的打算.

面試官:你知道什么是多態嗎?

應聘者:知道,我很保守的,我認為讓心愛的女人為了自己的一時快樂去墮胎是不到德的行為!請問這和C#有什么關系?

 

 

笑話就看完來大家接着看下面的內容吧!

 

                    C#語法快速熱身

1 if結構(和Java中的用法相同)

if(條件表達式) { //代碼塊
 }

 

 

2 if-else結構(和Java中的用法相同)

if(條件表達式) { //代碼塊1
 } else { //代碼塊2
 }

 

3 多重if結構(和Java中的用法相同)

if(條件表達式1) { //代碼塊1
 } else if(條件表達式2) { //代碼塊2
 } else if(表達式3) { //代碼塊3
 } else { //代碼塊4
 }

 

4 嵌套if結構(和Java中的用法相同)

if(條件表達式1) { if(條件表達式2) { //代碼塊1
 } else { //代碼塊2
 } } else { //代碼塊3
 }

 

5 switch 選擇結構

在Java中switch選擇結構中的表達式只能是(int/char)

而且選擇結構中的break;可有可無.但在C#中switch選擇結構中的表達式多了一個string類型;switch結構中每個case塊后必須有break;如若不加,編譯器會報錯,除非在特殊情況下:case塊后沒有語句;

例如:

case1: case2: break;

 

 

switch(int/char/string表達式) { case1: //語句

break; case1: //語句

break; default: break; }

 

6 while循環結構(和Java中的用法相同)

While循環是先判斷條件表達式是否成立,若條件成立,則執行循環體;否則結束循環.

while(條件表達式) { //代碼塊
 }

 

7 do-while循環(和Java中的用法相同)

do-while循環先執行一次循環體在判斷條件表達式是否成立,若條件成立,則繼續循環;否則結束循環.

do { //代碼塊
 }while(條件表達式);

 

8 for循環(和Java中的用法相同)

for循環反復執行一段代碼,知道滿足一定條件為止.

for(表達式1;表達式2;表達式3) { //代碼塊
 }

 

9 foreach循環()

一般用來遍歷整個集合和數組;

foreach(元素類型 元素變量名 in 數組) { //代碼塊
 }

 

Eg:

int[] num = { 10,20,30,40,50}; Console.WriteLine("數組中的數為:"); foreach(int item in num) { Console.WriteLine(item); } Console.ReadLine();

 

10 C#中的一對數組

 01.例:如何在C#中定義一個長度為4的int類型數組:

  

第一種方式: int[] age=new int[4]{1,2,3,4}; 第二種方式: int[] age; age=new int[4]{1,2,3,4}; 第三種方式: int[] age = new int[4] { 1, 2, 3 ,4}; 第四種方式: int[] age={1,2,3,4};

 

02.foreach的局限性:

不能改變數組中個元素的值,如果想改變數個元素的值應使用for循環;

11 二重循環(和Java中的用法相同)

 int i, j; / /循環變量 // 外層循環控制打印的行數

for (i = 1; i <= 5; i++) { // 內層循環控制每行打印數字的個數

    for (j = 1; j <= i; j++) { Console.Write(j); } Console.WriteLine(); } Console.ReadLine();

 

打印出的圖形為:

1

1 2

1 2 3

1 2 3 4

1 2 3 4 5

 

12 冒泡排序

流程:每次比較相鄰的兩個數,較小數的交換到前面,較大的數交換到后面,每輪結束后最大的數總在最后.

例:將一個一個長度為5的int類型數組安升序排列

 int[] num={20,30,10,40,0}

 按冒泡排序的思想分析:

第0輪: {20,30,10,40,0}

  第一次:20<30;不用交換位置.{20,30,10,40,0}

  第二次:30>10;交換位置{20,10,30,40,0}

  第三次:30<40;不交換位置{20,10,30,40,0}

  第四次:40>0;交換位置{20,10,30,0,40}

第1輪: {20,10,30,0,40}

  第一次:20>10;交換位置.{10,20,30,0,40}

  第二次:10<30;不交換位置{10,20,30,0,40}

  第三次:30>0;交換位置{10,20,0,30,40}

第2輪: {10,20,0,30,40}

  第一次:10<20;不交換位置.{10,20,0,30,40}

  第二次:20>0;交換位置{10,0,20,30,40}

第3輪: {10,0,20,30,40}

  第一次:10>0;交換位置.{0,10,20,30,40}

 

     i(多少輪)       j(每輪多少次)

     0              4

     1              3

     2              2

     3              1

      i和j的一個關系:

       i+j=4;

       J=4-i;

 num.Length數組的長度為5因此外層循環結束條件為num.length-1;內層循環結束條件為num.Length-1-i;

        i+j=num.Length-1;

        j=num.Length-1-i;

 解析:外層循環控制多少輪(i)內層循環控制每輪循環多少次(j)

  

for (int i = 0; i <num.Length-1; i++) { for (int j = 0; j <num.Length-1-i; j++) { if(num[j]>num[j+1]) { int newnum = num[j]; num[j] = num[j + 1]; num[j + 1] = newnum; } } }

看到這你以成功的掌握了C#的基礎知識了請大家務必看完下面的最后一點.

 

 

 

                     使用屬性升級MyBank

 

 1 訪問修飾符  

  在之前我們學習到一個public(公有的) 訪問修飾符它在任何位置都可以訪問,它的訪問級別最高,用public 修飾的都稱為屬性.在C#中也有一個訪問修飾符private(私有的)它只能在當前類中訪問,它的訪問級別最低,用private修飾都稱為字段.

 2 屬性

屬性作用:修改和獲取私有字段的值(間接對私有字段賦值,起到保護私有字段的作用)

 private string name;

鼠標左鍵雙擊name快捷鍵Ctrl+R+E; 

 

 public string Name { get { return name; } set { name = value; } }

 

3 this關鍵字

首先在一個類中定義一個私有字段private string name;然后一個public void StudentName(string name)方法中傳入一個string 類型的name變量,如果我在方法體中寫這樣一行代碼:name=name;給name賦值,但是編譯器此時會報錯,因為編譯器此時無法辨別出代碼中出現的這兩個name 哪個是成員變量,這時需用到this關鍵字來區分,他指的是當前類的實例(對象)

 

4 向對象三大特性:

01.封裝

  可以將私有字段封裝成屬性,看成是一種封裝(屬性封裝了字段)

  可以將一個方法寫到類中這種方式成為封裝(類封裝了方法)

02.繼承

03.多態

5數據安全

    

static void Main(string[] args) { Student stu = new Student(); stu._age = -2;//非法數據
 stu. _idCard = "123456"; //身份證號不能被修改
 }

 

有時候將類中的字段公開是不安全的,但是如果設為私有成員:

無法正常賦值,無法獲得數據。

使用方法解決數據安全問題

1,使用者不可直接操作_age

2,用方法返回_age供讀取

3,用方法限制使用者的非法賦值

private int _age; public int 方法1() { return this._age; } public void 方法2(int 參數) { if(參數<0||參數>100) { this._age=18; } else { this._age=參數; } }

 

這種寫法太麻煩,於是誕生了屬性

class Student { private string name; public string Name { get { return name; } set { name = value; } } }

 

       value相當於方法的參數,字段和屬性的數據類型必須一致。

       get用於獲取相應字段的值,

       set用於設置字段的值。

       get和set都存在,讀寫屬性只有get時,只讀屬性。只有set時,只寫屬性。

       屬性的作用:控制私有字段的可訪問性,保護內部數據的安全。

       建議:類內部敏感字段使用屬性來控制訪問

       類的成員:字段、屬性和方法

       屬性是不能用來存儲對數據的,真正的數據是存儲在字段中的

   6參數的傳遞方式

    參數傳遞有兩種方式:值傳遞和引用類型傳遞

    注意:值傳遞不能保留參數的修改,要按引用傳遞,使用ref通過引用傳遞參數:定義和調用時,在參數前都要使用ref;在方法調用前:作為參數的變量要聲明並賦值 ;

 

謝謝!你們抽出寶貴的時間來看,希望對你們有幫助,如果文章有錯誤之處請大神們及時給我指正.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM