亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

1、C#基礎:變量、運算符、分支、循環、枚舉、數組、方法

2019-11-14 14:12:22
字體:
來源:轉載
供稿:網友

C#、.Net以及IDE簡介

一、什么是.Net?

.Net指 .Net Framework框架,一種平臺,一種技術。

.Net Framework框架是.Net平臺不可缺少的一部分,它提供了一個穩定的運行環境來保證我們基于.Net平臺開發的各種應用能夠正常運轉。

.Net Framework 各版本區別

2002年 1.0------vs2002

統一類型系統,基礎類庫,垃圾回收,多語言支持、ado.net 1.0、asp.net 1.0、winform 1.0。

2003年 1.1------vs2003

安全方面升級、自帶對ODBC Oracle的支持,支持ipv6

2005年 2.0------vs2005

提升安全性、性能、泛型和內置泛型集合、基礎類庫的擴展、引入事務Transaction

2006年 3.0------需要2.0框架支持

WCF(WEB服務)、WF(工作流)、WPF(用戶界面統一)、WCS(數字標識用戶控件)

2007年 3.5------vs2008

asp.net Ajax、Linq、自動屬性、對象初始化器、集合初始化器、擴展方法、Lambda表達式、查詢語法、匿名類型、LinqtoSQL、MVC

2010年 4.0------vs2010

DLR、dynamic、默認參數、命名參數、并行開發等

.NET Framework 由.NET Framework類庫和公共語言運行時兩個主要組件組成

CLS(公共語言規范):用來保證語言之間的兼容性,只要遵循CLS任何一種.net語言編寫的組件都可以被其他語言所引用。

CTS(通用類型系統):定義了如數字、字符串和數組等數據類型的規則,這樣他們就能為所有的.net語言所共享。

CLR(公共語言運行庫): 只是用來執行中間語言代碼。然后把他們編譯成為機器語言讓他們能在當前平臺執行。

DLR(動態語言運行時):4.0的新特性,CLR為c#和vb提供了通用的平臺,而DLR則為javascript、Ruby等com組件提供了通用平臺。

二、什么是C#?

C#是一種編程語言,可以開發基于.Net平臺的應用。

.net 是一種多語言開發的平臺 vb c++ F# 等,主要使用C#編程語言進行開發。

三、.Net能干什么?

1、桌面應用程序(Winform),就是軟件。

2、Internet應用程序(ASP.NET),就是網站。

3、手機開發 wp8

4、Unity3D 游戲開發

四、.Net交互模式

C/S:Clinet/Server,客戶端對服務器,需要安裝在電腦上的軟件。

B/S:Browser/Server,瀏覽器對服務器,不需要安裝在電腦上,通過網頁打開。

五、什么是IDE?

IDE 是指我們使用的開發工具,visual studio就是最常用的一種。

visual studio使用

啟動方式:雙擊圖標、命令:devenv

創建控制臺項目:新建項目 c# 控制臺 右上角.net framework 版本 項目名稱

解決方案關系:解決方案中包含多個項目,項目中包含多個文件,文件中命名空間包含類,類中可以包含方法,方法中包含程序代碼。

.sln后綴的文件是解決方案文件,包含整個解決方案的信息。類文件以.cs結尾。

.csPRoj 項目文件里面包含項目的信息。

解決方案 右鍵 新增項目 新建項目追加到解決方案 多個項目時 可以設置某個項目為啟動項目 啟動時自動啟動該項目 項目可以卸載 和追加 當執行編譯時 不再檢查已卸載的項目 工具->導入導出設置 中有個重置開發環境, 設置下可以設置字體 行號。

常用快捷鍵:ctrl+k+d全部對齊 | ctrl+k+f部分對齊 | ctrl+s保存 | ctrl+shift+s全部保存 | ctrl+c復制 | ctrl+v粘貼 | ctrl+z撤銷 | ctrl+y前進 | ctrl+j智能提示 ctrl+w+e代碼自動折行 等等。

六、Main方法

Main方法是程序的入口方法。 執行一個程序時,首先找到main方法,從main方法中第一句程序開始執行,當main方法執行完畢后程序就結束了。 一個程序只能有一個main方法

輸入輸出

Console.WirteLine(); //向控制臺輸出一句話。Console.ReadLine();  //向控制臺輸入一句話。

每一句代碼以;結束

啟動方式:f5帶調試啟動,shift+f5不啟動

生成解決方案編譯項目F6

八、xmind 繪圖軟件

新建空的  tab鍵 新增子節點   回車鍵 新增兄弟節點

F7快捷截圖 F8預覽

 

基礎語法

一、注釋

// 單行注釋 ctrl+k+c ctrl+k+u取消

/* */ 多行注釋

/// 文檔注釋

#region #endregion 折疊代碼 ctrl+k+s #reg

二、配置c#編譯環境

c#源程序需要.net framework SDK安裝程序提供的C#編譯器 csc.exe來編譯,需要設置環境變量。

我的電腦-屬性-系統屬性-高級-環境變量-系統環境變量-系統變量-選擇path-點編輯-將sdk安裝程序路徑添加到變量值。

C:/Windows/Microsoft.NET/Framework/v4.0.30319 //我的路徑 path中;區分

cmd 進入源文件目錄 輸入csc xxx.cs 該目錄下會編譯為xxx.exe可執行文件 cd C:/Users/大偉/Desktop/abc/abc---> csc Program.cs

三、變量

用來在計算機中存儲數據,存儲于內存中。內存是臨時存儲數據 斷電時內存中數據丟失

編寫的代碼存在內存中, 保存后從內存中保存到硬盤中 變量代表著一塊內存空間,可以通過變量名稱向內存中存/取數據。

1、聲明變量

數據類型 變量名;

例:int a; string b; double c;

2、變量賦值

變量名=值; 其中"="為賦值運算符,把右側值賦給左側變量。

例:a = 1;b = "asd";c = 2.13; 優先級最低a=a+1;算完在賦值;

3、聲明并賦值

數據類型 變量名 = 值;

例:int a = 1;

變量可以重復賦值,以最后一次為準,但不可以重復聲明 變量必須先聲明后使用

四、數據類型

整型:int、浮點數:double、字符:char、字符串:string、貨幣:decimal。

double 精度15~16位,16后不再顯示, decimal精度29 后面加m/M否則按double類型報錯。

4.0新特性

System.Numerics.BigInteger 大整數類型 需要framework 4.0或以上 如果沒有 檢查bll是否引用程序集

BigInteger big = new BigInteger(1000000000);
long value = 31313892839283;
BigInteger big = value;

dynamic 動態數據類型

運行時才檢查數據類型

dynamic v = 124;

Console.WriteLine(v.GetType()); //System.Int32

五、變量命名規則

必須字母或_或@開頭、不可以數字開頭。后面可以跟數字、字母、下劃線。

不可以與系統關鍵詞重復、大小寫敏感、不可以重復定義。

如果縮寫單詞全部大寫ICBC,多個單詞第二個單詞大寫首個小寫fuckYou? 或每個都大寫FuckYou!

六、“+”號的使用

“+”數字相加(左右都是數字)  例:1+1

“+”字符串鏈接(有一個是字符串) 例:string result = "haha" + 123;

七、占位符

"我叫{0},身高{1}",one,two; 右側保證與左側占位符個數相同 否則報錯

console輸出中","后面都是用來替換占位符的

八、變量交換

int a = 5,b = 10,temp;

temp = a;

a = b;

b = temp; // 完成交換

九、轉義字符

由/加上一個字符組成可以輸出的特殊字符

/"輸出引號 /n換行 /b退格 backspace鍵 刪除前一個 /t tab鍵 行對齊 // 輸出/

字符串前面加@標識該字符串有/不再轉義,字符串可以換行,輸出“時用兩個“

十、算術運算符

+ - * / % 二元運算符 兩個數字運算

十一、算術表達式

由運算符鏈接兩個數組成表達式 a+b

十二、類型轉換

隱式類型轉換:也叫自動轉換,當目標類型大于源類型時發生轉換。(小的轉成大的)

顯示類型轉換:也叫強制轉換,把double強制轉換成int不要小數點【(數據類型)值】(大的轉成小的)

(int)string 右側string必須是整數才可以轉換。

Convert轉換

Convert.ToInt32(帶轉換字符串); //轉換為Int;

Convert.ToString(number); //轉換為字符串

類型都有一個.ToString() 也可以用這個方法轉換為字符串

十三、可空類型?
int? a = null;  表示a的值可以為null使用

十四、異常處理

try{}catch 可能有錯誤的try中 報錯進入catch

 

運算符

一、一元運算符

++ 自增 -- 自減

后++;age=18; sum = age++ -10; age++取前值先算age-10 運算后 再運算age++; age=19 sum=8;

前++; ++age - 10 ++age 取新值 先+完

二、復合賦值符

+= += *= /= %=

age+=3; 自加3 類似:age=age+3;

三、關系運算符

>大于 <小于 ==等于 !=不等于 >=大于等于 <=小于等于

兩個數的操作稱為二元運算符

四、布爾類型

bool 類型只有兩個值:真true、假false。

關系運算的結果是布爾類型的

五、邏輯運算符

&&與 : 左右表達式都成立則為true

|| 或 : 左右表達式有一個成立就為true

! 非 : 不成立則為true

六、三元運算符

a1= =a2 ? "a" : "b" 成立輸出a 否則輸出b

 

分支結構

一、If

if(判斷條件)
{
    要執行的代碼;
}
判斷條件一般為關系表達式或bool類型的值,如果判斷條件成立則執行大括號內代碼。

二、If-else

if(判斷條件)
{
    成立的代碼
}else {
    不成立的代碼
}
如果判斷條件成立,執行大括號內代碼,否則執行else內代碼。

三、If-else If

用來處理多條件的區間性判斷

if(a=1){}else if(a=2){}else if(a=3){}else{} 

你懂的一直判斷有沒有 實在沒有就else。

四、Switch-case

用來處理多條件的等值比較

switch (num)
{
    case 1: 如果1
        1
    break;
    case 2: 如果2
        2
    break;
    default: 否則
        other
    break

}

 

循環結構

一、While循環

先判斷再執行

int i = 0;
While(i<100) //條件
{
    i++;
    if(i==50)
        break; //跳出循環
}

二、do-while循環

先執行再循環

do
{
    i++;
}while(i<50);

三、for循環

規定次數的循環

for(int i = 1;i<10;i++){
    console.writeline(i);
}

四、foreach循環

循環集合

foreach(var item in list){
  console.writeline(item.xx);
}

循環的集合 見第二章 都是循環就放這了 大量數據情況下 沒有for效率高

五、跳轉語句

break 立即跳出循環

continue 結束本次 繼續下次循環

goto跳轉到指定位置

return 返回

throw 拋出異常

 

常量、枚舉、結構以及數組

一、常量

不可改變的值

const 類型 名=值

const pi=3.14;

二、枚舉

限制賦值 在定義枚舉時的集合中選值

public enum Gender //定義枚舉
{
    男,
    女
}

Gender gender = Gender.男; //枚舉賦值

定義枚舉時,值不能是int類型的,那樣做沒有意義。

枚舉轉換為int

枚舉的類型可以跟int類型互相轉換,枚舉類型與int類型相兼容。

枚舉的值在定義時是有一個默認編號的,從0開始。

(int)Gender.男; //值為0 女為1 每次遞增1

改變枚舉的默認值定義時賦值,則默認從此值開始。

public enum Gender //定義枚舉
{
    男=2,
    女
}

這時(int)Gender.男 值為2,女則為3.

 

枚舉類型轉換

int轉換為枚舉

Gender gender = (Gender)n1; n1為0時則輸出男。

string類型轉換為枚舉

Gender gender = (Gender)(Enum.Parse(typeof(Gender),"男"));

三、結構

public struct Person //定義結構
{
    public string name; //定義字段
    public string tel;
}

Person zsPerson; //使用結構
    zsPerson.name = "zs"; //結構賦值
    zsPerson.tel = '138484848448';

四、數組

聲明數組并指定長度

數據類型[] 數組名=new 類型[數組長度];

賦值 數組名[0]=1;

從0開始 int類型數組 默認值0

數組名.length 獲得數組長度

int [] nums = new int[10]; //定義數組

nums[0] = 1;

nums[1] = 2; //賦值

int lengt = nums.Length; //得到長度

for (int i=0; i< nums.Length; i++) // 遍歷取值

聲明時直接賦值不指定長度

string[] names = { "zhangsan", "lisi", "wangwu" };

string[] names = new string[3] { "zhangsan", "lisi", "wangwu" };

數組長度需要和值長度相等 就是不能不符

string[] names = new string[] { "zhangsan", "lisi", "wangwu" }; //可以省略數組長度

五、冒泡排序

讓數組中的元素兩兩比較(第i與第i+1比較)經過n(個數-1)次比較

從大到小排序 用小于比較 成立就交換

int[] nums = { 1, 5, 23, 8, 5, 0, 4, 5 };
for (int i = 0; i < nums.Length - 1; i++)
{
    for (int j = 0; j < nums.Length - 1 - i; j++)
    {
        if (nums[j] < nums[j + 1])
        {
            int temp = nums[j];
            nums[j] = nums[j + 1];
            nums[j + 1] = temp;
        }
    }
}
for (int i = 0; i < nums.Length; i++)
{
    Console.WriteLine(nums[i]);
}
Console.ReadKey();

 

方法

方法就是將一堆代碼進行重用的一種機制,可能有輸入的值,返回的值,執行后返回結果。

方法一般定義在類中,如果方法沒有返回值則使用void。

[訪問修飾符][static] 返回值類型 方法名([參數]) //[] 中可又可無
{
return; //返回
}

 

public static void showView()
{
Console.WriteLine("Hello World!");
}
//static 靜態的 調用 class.showView();
 
一、變量作用域
全局變量 定義到類中 所有方法通用 靜態方法中使用定義時也要用靜態
局域變量 在哪個方法定義 在哪用
二、參數
參數個數,類型要相同 int.Parse(string) 類似 Convert.ToInt32(string)
static void Main(string[] args)
{
    test("Diavd", 18);
}
public static void Test(string name, int age)
{
    Console.WriteLine("my Name is {0} , Age is {1}", name, age);
}
三、返回值
public static string Test(int a)
{
    if (a == 1)
    {
        return "1";
    }
    else
    {
        return "other";
    }
}
返回值要與返回類型相同。
四、方法重載
方法名相同 參數個數或類型不同 可以構成 與返回值無關
static void Main(string[] args)
{
    int m = Max(10, 20);
    double d = Max(10.3, 20.3);
}
public static int Max(int one, int two)
{
    if (one > two)
    {
        return one;
    }
    else
    {
        return two;
    }
}
public static double Max(double one, double two)
{
    if (one > two)
    {
        return one;
    }
    else
    {
        return two;
    }
}
五、out
用來返回一個值; 傳出 通過參數返值
//可以在方法內不賦值下直接使用
static void Main(string[] args)
{
    int number; //number已經是20了;
    int result = test(out number);
}
//number可以不賦值便使用,調用時也需要寫out

static int test(out int a)
{
    a = 20; //如果方法參數名標記為out 則方法中必須對其賦值。
    return a;
}
int number = int.Parse("a12");// 如果失敗則拋出異常。

int result;
bool number2 = int.TryParse("a12", out result); //第一轉換字符串,第二返回轉換成功的值 或失敗為0;
返回值是否成功 true false;
六、ref
引用傳遞 方法內的值改變了 外面也將改變
static void Main(string[] args)
{
    int number = 100;
    test(ref number); //執行后number為500
}
static void test(ref int a)
{
    int b = a; //不對a進行賦值直接使用
    a = 500; //此時不是變量賦值 而是內存地址邊為number 相當于創建快捷方式 而不是復制一份
}
七、params可變參數
 public void test(string name,params int[] ages)
{
    

//調用 數組長度可變
test("a",12,12,12); 
test("b",13,2);
可變參數必須是參數列表的最后一個參數
4.0新特性
1、可選參數
可以為可選參數省略參數值,每個可選參數都具有默認值作為定義的一部分
public void abc(int num1,int num2,string oper = "+")
其中num1,num2為必選參數,oper為可選參數,不輸入時默認為+
2、命名參數
可以在調用參數時,不按照順序進行調用
public void abc(int num1,int num2,int num3)
abc(num2:123,num3:123,num1:123);
八、方法遞歸
自己調用自己 多用于遞歸查找磁盤文件
public int Sum(int n){
    if(n<=0){
        return 0;
    }
    return n + Sum(n-1);
} //1+2+3+..+n和

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
黑人极品videos精品欧美裸| 国产精品美女久久久久久免费| 国产欧美精品一区二区| 狠狠综合久久av一区二区小说| 国产午夜精品全部视频在线播放| 亚洲精品二三区| 91po在线观看91精品国产性色| 亚洲美女动态图120秒| 国产精品综合久久久| 亚洲精品乱码久久久久久金桔影视| 欧美黑人极品猛少妇色xxxxx| 亚洲福利视频二区| 欧美性生交大片免网| 国产精品久久久久久久9999| 欧美最猛性xxxxx(亚洲精品)| 91精品综合视频| 91视频免费网站| 亚洲成人黄色在线| 亚洲国产另类久久精品| 亚洲人成77777在线观看网| 日日骚av一区| 久久亚洲影音av资源网| 国产精品第一页在线| 91精品免费久久久久久久久| 亚洲欧美日韩图片| 91精品国产成人www| 亚洲va久久久噜噜噜久久天堂| 国产精品高潮呻吟久久av野狼| 国产精品国产三级国产aⅴ9色| 日本一区二区三区在线播放| 亚洲欧美综合精品久久成人| 欧美中文字幕在线视频| 亚洲区中文字幕| 夜色77av精品影院| 亚洲精品久久视频| 日韩av综合网| 在线性视频日韩欧美| 中文字幕视频在线免费欧美日韩综合在线看| 国产视频精品自拍| 国产精品第3页| 久久精品中文字幕免费mv| 岛国视频午夜一区免费在线观看| 黄色成人av在线| 国产色视频一区| 成人久久一区二区三区| 久久午夜a级毛片| 久久久人成影片一区二区三区观看| 日韩av在线导航| 九九精品在线观看| 久久久久久亚洲精品中文字幕| 中文字幕亚洲欧美一区二区三区| 久久久女人电视剧免费播放下载| 亚洲女成人图区| 国产精品视频男人的天堂| 久久久久久一区二区三区| 欧美成人免费小视频| 日韩一区二区av| 青青草精品毛片| 亚洲一区国产精品| 福利视频第一区| 精品久久久91| 91亚洲精品久久久久久久久久久久| 国产精品27p| 亚洲人成在线观看网站高清| 色综合久久88色综合天天看泰| www.99久久热国产日韩欧美.com| 精品视频久久久久久| 69视频在线免费观看| 欧美肥婆姓交大片| 欧美在线亚洲在线| 国产精品一二三视频| 久久精品国产电影| 欧美高清视频在线| 欧美视频13p| 亚洲精品按摩视频| 欧美在线一区二区三区四| 亚洲精品第一国产综合精品| 精品在线观看国产| 中文字幕亚洲欧美在线| 黑人巨大精品欧美一区二区三区| 日韩欧美在线看| 欧美精品videos另类日本| 色噜噜狠狠狠综合曰曰曰| 国产精品欧美激情| 亚洲美女视频网| 欧美激情性做爰免费视频| 久久色精品视频| 77777少妇光屁股久久一区| 国产综合福利在线| 久久久97精品| 亚洲精品一区中文| 欧美激情xxxx性bbbb| 色视频www在线播放国产成人| 97人人爽人人喊人人模波多| 成人h猎奇视频网站| 亚洲精品有码在线| 在线观看日韩av| 69影院欧美专区视频| 国产精品极品美女粉嫩高清在线| 亚洲自拍偷拍第一页| 日韩中文有码在线视频| 国产小视频国产精品| 欧美裸体xxxx极品少妇| 色系列之999| 最新国产成人av网站网址麻豆| 亚洲精品99久久久久中文字幕| 日韩av影院在线观看| 亚洲精品国产精品自产a区红杏吧| 国产日本欧美一区二区三区在线| 亚洲成人a级网| 亚洲免费一级电影| 欧美最猛黑人xxxx黑人猛叫黄| 国产91ⅴ在线精品免费观看| 国产丝袜精品第一页| 亚洲精品一区二区网址| 国产精品偷伦视频免费观看国产| 欧美激情xxxx性bbbb| 精品国产乱码久久久久酒店| 亚洲欧美日韩久久久久久| 久久久久国产精品www| 亚洲免费视频一区二区| 国产一区二区三区网站| 国产欧美一区二区白浆黑人| 亚洲欧美三级在线| 日韩精品福利在线| 日本一欧美一欧美一亚洲视频| 国产精品美乳在线观看| 中文字幕成人精品久久不卡| 日韩欧美主播在线| 欧美一级免费看| 操91在线视频| 亚洲天堂开心观看| 精品国产成人在线| 欧美视频在线免费看| 国产午夜精品免费一区二区三区| 亚洲性视频网站| 亚洲精品天天看| 亚洲色图25p| 亚洲偷欧美偷国内偷| 91社区国产高清| 美女国内精品自产拍在线播放| 国产国语videosex另类| 91香蕉电影院| 日本最新高清不卡中文字幕| 日本国产高清不卡| 国产精品一区二区三区成人| 亚洲春色另类小说| 久久精品成人欧美大片古装| 国产美女直播视频一区| 亚洲老头同性xxxxx| 亚洲日韩中文字幕| 精品久久久久久久久中文字幕| 国产精品成人免费电影| 国产一区二区日韩精品欧美精品| 国产美女91呻吟求| 成人做爽爽免费视频| 在线视频欧美性高潮| 亚洲一区二区三区在线视频| 久久亚洲欧美日韩精品专区| 色综合色综合久久综合频道88| 欧美黑人性生活视频| 成人国产亚洲精品a区天堂华泰| 日韩免费观看网站| 日韩精品欧美国产精品忘忧草|