1. 程式人生 > >【c#】c sharp的基礎知識

【c#】c sharp的基礎知識

1.與java基本差不多

Console.WriteLine("A:{0},a:{1}",65,97)多個引數時,利用集合中確定順序數字,來替代順序引數。注意從0開始。

2.c#的資料型別

1.值型別 和大部分的程式語言一樣。

2.引用型別 變數的引用,指的是記憶體的位置,使用多個變數時,引用型別可以指向一個記憶體為中。

動態型別,有點像c++ 中的auto ,c#中的Dynamic ,動態型別。dynamic d=20;

字串型別中,除了普通的字串,還有@字串,這種字串中可以任意換行,換行符及縮排空格都計算在字串長度之內。

關於拆箱裝箱:意味著將變數轉換為物件型別,拆箱是將裝箱後的物件拆箱成變數。

3.指標型別

好像和c c++ 一樣

4.型別轉換:

  • 隱式型別轉換 - 這些轉換是 C# 預設的以安全方式進行的轉換, 不會導致資料丟失。例如,從小的整數型別轉換為大的整數型別,從派生類轉換為基類。
  • 隱式型別轉換:
  • 顯式型別轉換 - 顯式型別轉換,即強制型別轉換。顯式轉換需要強制轉換運算子,而且強制轉換會造成資料丟失。如:(int)a
利用convert進行轉換。

還有int.Parse(string s)等等

5.c#迴圈

和c c++一樣,多了一個foreach 差不多直接是java裡for的用法。

foreach(int element in fibarray){
            count 
+=1;System.Console.WriteLine("Element #{0}: {1}", count, element);}System.Console.WriteLine("Number of elements in the array: {0}", count);}
Console.WriteLine與System.Console.WriteLine的區別是前面是否用了using System。

6.傳遞引數

和java c c++一樣,有按值傳遞,還有引用傳遞。

新奇的是有一個按輸出傳遞引數,return語句可用與只從函式中返回一個值,可以用輸出引數來從函式中返回兩個值,輸出函式會把

方法輸出的資料賦給自己,其他方面與引用引數相似。

可以在方法的定義括號中輸入:out int x定義引數,然後可以返回這個值。(我感覺這就是c#內部機制就是簡化了其他語言中傳遞地址的步驟)

7.可空型別

可以瞭解到其實Nullable其實是一種可空型別,是一種結構體,有兩種值,一個是判斷是否為空的flag,一個是實際的value。

然後nullable與一些型別變數之間也是可以進行一些隱性的轉換的。

Null合併運算子??

8.陣列

例子:和java一樣  double [] a=new double[10]

訪問陣列元素可以用foreach

for(int i in a){} 訪問a陣列中的元素

Array類,有許多常見的屬性:

IsFixedSize 獲取一個值,指出該值是否帶有固定大小。

IsReadOnly 判斷該陣列是否只讀。

Length 獲取陣列中的元素總數。LongLength獲取元素總數。

Array常用方法:

序號 方法 & 描述
1 Clear
根據元素的型別,設定陣列中某個範圍的元素為零、為 false 或者為 null。
2 Copy(Array, Array, Int32)
從陣列的第一個元素開始複製某個範圍的元素到另一個數組的第一個元素位置。長度由一個 32 位整數指定。
3 CopyTo(Array, Int32)
從當前的一維陣列中複製所有的元素到一個指定的一維陣列的指定索引位置。索引由一個 32 位整數指定。
4 GetLength 
獲取一個 32 位整數,該值表示指定維度的陣列中的元素總數。
5 GetLongLength
獲取一個 64 位整數,該值表示指定維度的陣列中的元素總數。
6 GetLowerBound
獲取陣列中指定維度的下界。
7 GetType
獲取當前例項的型別。從物件(Object)繼承。
8 GetUpperBound
獲取陣列中指定維度的上界。
9 GetValue(Int32)
獲取一維陣列中指定位置的值。索引由一個 32 位整數指定。
10 IndexOf(Array, Object)
搜尋指定的物件,返回整個一維陣列中第一次出現的索引。
11 Reverse(Array)
逆轉整個一維陣列中元素的順序。
12 SetValue(Object, Int32)
給一維陣列中指定位置的元素設定值。索引由一個 32 位整數指定。
13 Sort(Array)
使用陣列的每個元素的 IComparable 實現來排序整個一維陣列中的元素。
14 ToString
返回一個表示當前物件的字串。從物件(Object)繼承。

9.一些小細節

c#中換行可以通過,Console.WriteLine();

在程式的末尾,可以用Console.ReadKey()接受任意字元。

Console.ReadLine(); 會等待直到使用者按下回車,一次讀入一行

10.String類

和大部分語言一樣,string是一個類。

//通過使用 string 建構函式char[] letters ={'H','e','l','l','o'};string greetings =newstring(letters);Console.WriteLine("Greetings: {0}", greetings);
1 public static int Compare( string strA, string strB ) 
比較兩個指定的 string 物件,並返回一個表示它們在排列順序中相對位置的整數。該方法區分大小寫。
2 public static int Compare( string strA, string strB, bool ignoreCase ) 
比較兩個指定的 string 物件,並返回一個表示它們在排列順序中相對位置的整數。但是,如果布林引數為真時,該方法不區分大小寫。
3 public static string Concat( string str0, string str1 ) 
連線兩個 string 物件。
4 public static string Concat( string str0, string str1, string str2 ) 
連線三個 string 物件。
5 public static string Concat( string str0, string str1, string str2, string str3 ) 
連線四個 string 物件。
6 public bool Contains( string value ) 
返回一個表示指定 string 物件是否出現在字串中的值。
7 public static string Copy( string str ) 
建立一個與指定字串具有相同值的新的 String 物件。
8 public void CopyTo( int sourceIndex, char[] destination, int destinationIndex, int count ) 
從 string 物件的指定位置開始複製指定數量的字元到 Unicode 字元陣列中的指定位置。
9 public bool EndsWith( string value ) 
判斷 string 物件的結尾是否匹配指定的字串。
10 public bool Equals( string value ) 
判斷當前的 string 物件是否與指定的 string 物件具有相同的值。
11 public static bool Equals( string a, string b ) 
判斷兩個指定的 string 物件是否具有相同的值。
12 public static string Format( string format, Object arg0 ) 
把指定字串中一個或多個格式項替換為指定物件的字串表示形式。
13 public int IndexOf( char value ) 
返回指定 Unicode 字元在當前字串中第一次出現的索引,索引從 0 開始。
14 public int IndexOf( string value ) 
返回指定字串在該例項中第一次出現的索引,索引從 0 開始。
15 public int IndexOf( char value, int startIndex ) 
返回指定 Unicode 字元從該字串中指定字元位置開始搜尋第一次出現的索引,索引從 0 開始。
16 public int IndexOf( string value, int startIndex ) 
返回指定字串從該例項中指定字元位置開始搜尋第一次出現的索引,索引從 0 開始。
17 public int IndexOfAny( char[] anyOf ) 
返回某一個指定的 Unicode 字元陣列中任意字元在該例項中第一次出現的索引,索引從 0 開始。
18 public int IndexOfAny( char[] anyOf, int startIndex ) 
返回某一個指定的 Unicode 字元陣列中任意字元從該例項中指定字元位置開始搜尋第一次出現的索引,索引從 0 開始。
19 public string Insert( int startIndex, string value ) 
返回一個新的字串,其中,指定的字串被插入在當前 string 物件的指定索引位置。
20 public static bool IsNullOrEmpty( string value ) 
指示指定的字串是否為 null 或者是否為一個空的字串。
21 public static string Join( string separator, string[] value ) 
連線一個字串陣列中的所有元素,使用指定的分隔符分隔每個元素。
22 public static string Join( string separator, string[] value, int startIndex, int count ) 
連線接一個字串陣列中的指定位置開始的指定元素,使用指定的分隔符分隔每個元素。
23 public int LastIndexOf( char value ) 
返回指定 Unicode 字元在當前 string 物件中最後一次出現的索引位置,索引從 0 開始。
24 public int LastIndexOf( string value ) 
返回指定字串在當前 string 物件中最後一次出現的索引位置,索引從 0 開始。
25 public string Remove( int startIndex ) 
移除當前例項中的所有字元,從指定位置開始,一直到最後一個位置為止,並返回字串。
26 public string Remove( int startIndex, int count ) 
從當前字串的指定位置開始移除指定數量的字元,並返回字串。
27 public string Replace( char oldChar, char newChar ) 
把當前 string 物件中,所有指定的 Unicode 字元替換為另一個指定的 Unicode 字元,並返回新的字串。
28 public string Replace( string oldValue, string newValue ) 
把當前 string 物件中,所有指定的字串替換為另一個指定的字串,並返回新的字串。
29 public string[] Split( params char[] separator ) 
返回一個字串陣列,包含當前的 string 物件中的子字串,子字串是使用指定的 Unicode 字元陣列中的元素進行分隔的。
30 public string[] Split( char[] separator, int count ) 
返回一個字串陣列,包含當前的 string 物件中的子字串,子字串是使用指定的 Unicode 字元陣列中的元素進行分隔的。int 引數指定要返回的子字串的最大數目。
31 public bool StartsWith( string value ) 
判斷字串例項的開頭是否匹配指定的字串。
32 public char[] ToCharArray()
返回一個帶有當前 string 物件中所有字元的 Unicode 字元陣列。
33 public char[] ToCharArray( int startIndex, int length ) 
返回一個帶有當前 string 物件中所有字元的 Unicode 字元陣列,從指定的索引開始,直到指定的長度為止。
34 public string ToLower()
把字串轉換為小寫並返回。
35 public string ToUpper()
把字串轉換為大寫並返回。
36 public string Trim()
移除當前 String 物件中的所有前導空白字元和後置空白字元。

11.結構體

其實c#中的結構體已經和類很像很像,還可以有方法,但是和類還是有本質的區別,比如不能繼承等等

12.列舉 Enum

enum Days { Sun, Mon, tue, Wed, thu, Fri, Sat };

這個列舉量,第一個列舉符號是0,然後依次增加。這個c++中也有。

我記得可以不一定需要從0開始的。就是直接在enum定義中用=賦值。

13.類方面,介面都一樣。介面預設是public,因為要給別人繼承呀。

運算子過載,operator。在operator後面加過載符號,這樣的話可以直接使用。

介面中的方法需要被繼承的類實現。

用new定義類時候,實際就是建構函式的呼叫。

14.名稱空間(和c++類似)

System空間裡定義了Console類,所以需要在開頭用Using

15.c#處理異常時候的關鍵詞

try,catch,finally,throw:

try:一個 try 塊標識了一個將被啟用的特定的異常的程式碼塊。後跟一個或多個 catch 塊。

catch:程式通過異常處理程式捕獲異常。catch 關鍵字表示異常的捕獲。

finally:finally 塊用於執行給定的語句,不管異常是否被丟擲都會執行。例如,如果您開啟一個檔案,不管是否出現異常檔案都要被關閉。

throw:當問題出現時,程式丟擲一個異常。使用 throw 關鍵字來完成。

try示例:

try{// 引起異常的語句}catch(ExceptionName e1 ){// 錯誤處理程式碼}catch(ExceptionName e2 ){// 錯誤處理程式碼}catch(ExceptionName eN ){// 錯誤處理程式碼}finally{// 要執行的語句}

相關推薦

C++ map的基礎知識

1.定義 map是一個容器,容器中存在兩個值,key和value。 key只能出現一次,而value可以重複。 2.性質 關聯性:關聯容器中的元素的參考地址指的是其 Key 值,而不是他們在容器中的絕對地址; 有序性:容器中的元素一直按照排序方式嚴格排序,

組合語言x86組合語言基礎知識

第二章 資料儲存方式,高地址儲存資料高位 位元組:8位 字: 兩個位元組 暫存器表示大小寫不敏感 指令的錯誤表示: 不能將16位暫存器與8位暫存器混合使用(add ax, bl) 不能將大小超過暫存器所能儲存限制的資料傳給暫存器(mov al,100

6 angular 路由基礎知識_在路由時傳遞資料_重定向路由_子路由_輔助路由_路由守衛

路由基礎知識   路由相關物件介紹   新建一個專案 ng new router --routing 並使用webstrom 開啟  發現--routing 引數建立後 會多出一個檔案app-routing.module.ts 就是當前應用的路徑配置

、UML基礎知識——圖圖解乾坤

【二】、UML基礎知識 UML概述 UML是一個通用的視覺化建模語言,不同於程式語言,它通過一些標準的圖形符號和文字來對系統進行建模。用於對軟體進行描述、視覺化處理、構建軟體系統的文件。是一套總結了以往建模技術的經驗並吸收了當今最優秀成果的標準建模方法。 UML的結構 檢視 使用者檢視:以使用者的觀點表示

c#c sharp基礎知識

1.與java基本差不多 Console.WriteLine("A:{0},a:{1}",65,97)多個引數時,利用集合中確定順序數字,來替代順序引數。注意從0開始。 2.c#的資料型別 1.值型別 和大部分的程式語言一樣。 2.引用型別 變數的引用,指的是記憶體的位置

夾娃系列java面試基礎知識儲備(¥1)——java的優點和C++的異同點

怎麼才能夾到布娃娃 沒錯!!這個文章就是告訴你怎麼才能用一個硬幣,抓到最多的布娃娃QAQ,這是我抓娃娃的第一個硬幣¥1.【宣告】夾娃系列純屬個人學習,參考了不少面試的書,《程式設計之美》、《演算法珠璣》、《劍指offer》、《java程式設計師

良心C語言零基礎學習,C語言初學者入門基礎知識講解

C++ 其實是一種中級語言,它是 Bjarne Stroustrup 於 1979 年和以往的積累在貝爾實驗室開始設計開發的一種計算機語言。C++ 進一步擴充和完善了 C 語言,不僅是一種面向物件的程式設計語言,還要提到的C++ 可運行於多種平臺上,比如Windows還有

C#期末複習1零碎的基礎知識

最後一點就是堅持,有時候寫這些東西真的很痛苦,很讓人抓狂,但是你一旦你堅持下去,久而久之,你會看到自己的進步,某一天你回過頭去看自己以前寫的文章,當你能夠說出:“寫得真他媽菜”,那麼恭喜你,已經你升級了“。       &nb

c#連線資料庫相關知識

知識回顧 1、儲存過程: 是在大型資料庫系統中,一組為了完成特定功能的SQL 語句集,儲存在資料庫中,經過第一次編譯後再次呼叫不需要再次編譯,使用者通過指定儲存過程的名字並給出引數(如果該儲存過程

01CC++(基礎

2.預設形參值的說明必須出現在函式呼叫之前,如果存在函式的宣告則在函式的宣告中給預設值,一般不再函式定義中給預設值。如果不存在很熟宣告則在函式定義中給預設值。若函式原型中已給出了形參的預設值,則在函式定義中不得重複指定,即使所指定的預設值完全相同也不行。

收集C#一些基礎的面試題

C# 中 Struct 與 Class 的區別,以及兩者的適用場合class 是引用型別,str

收藏C#中的多執行緒——執行緒同步基礎

第二部分:執行緒同步基礎 同步要領 下面的表格列展了.NET對協調或同步執行緒動作的可用的工具: 簡易阻止方法 構成 目的 Sleep 阻止給定的時間週期 Join 等待另一個執行緒完成 鎖系統 構成 目的 跨程序?

專欄 - C++學習與基礎演算法

C++學習與基礎演算法 這個欄目主要用於收集自己的C++學習心得,裡面的文章全都是原創的,自己動手寫,想把最近所寫的文章歸納成為一個專欄,讓更多人一起學習一起交流。這個月已經堅持寫了20篇的原創文章了,希望能有一個自己的專欄。

收藏一套基礎C語言筆試題

每個5分共100分。錯選、多選、少選或不選均不得分。 1.[單選題]一個C程式的執行是從( A )A:本程式的main函式開始,到main函式結束B:本程式檔案的第一個函式開始,到本程式檔案的最後一個函式結束C:本程式的main函式開始,到本程式檔案的最後一個函式結束D:

C/C++c/c++基礎加進階視頻教程(含數據結構和設計模式)

process 1.5 正在 子集 多態 c++編程 基本 開發 數據 收集整理了c和c++從基礎到進階的視頻教程,共26.4G,歡迎下載。至於學習c++要不要先學c的問題也是見仁見智,個人覺得在c語言的基礎上學c++會更有效率一些。這套視頻教程包含了c語言課程,麻油們可以

c語言-樹的基礎知識(一)

相交 ges 最大 .cn nbsp 分享 blog com lin 第一、樹的定義: 1.有且只有一個稱為根的節點 2.有若幹個互不相交的子樹,這些子樹本身也是一顆樹 第二、專業術語: 樹的深度:從根節點到最低層,節點的層數 ,稱之為樹的深度。

c#之繼承

none 實現 void 運算符重載 調用方法 需要 strong 靜態 顯式 一.繼承的類型   在面向對象的編程中,有兩種截然不同繼承類型:實現繼承和接口繼承   1.實現繼承和接口繼承   *實現繼承:表示一個類型派生於基類型,它擁有該基類型的所有成員字段和函

C#之集合

tab 並發集合 get spa style con 都在 src 字典  數組(http://www.cnblogs.com/afei-24/p/6738128.html)的大小是固定的。如果元素的個數是動態的,就應使用集合類。     列表(http://www.cn

C# 高性能 TCP 服務的多種實現方式

http c# del sha 開源 https tar .com targe 原文鏈接: http://www.cnblogs.com/gaochundong/p/csharp_tcp_service_models.html 開源庫: https://g

整理C#文件操作大全(SamWang)

cto read image creating ram exceptio file類 詳細 ima 文件與文件夾操作主要用到以下幾個類:   1.File類:   提供用於創建、復制、刪除、移動和打開文件的靜態方法,並協助創建 FileStre