標籤:
1、注視(不要寫的目光是流氓,從廢話名盲人)
‘///’一般用於目光功能。凝視類。
2、熱鍵
ctrl+k+d(有語法錯誤無法進行對齊)
ctrl+j(高速彈出僅僅能提示)
shift+end,shift+home 鍵從行首到行尾,從行尾到行首。
ctrl+k+c 凝視 ctrl+k+u取消凝視
alt+shift+f10 開啟說明引用空間。
f1轉到msdn
f12轉到定義
3、資料類型
decimal money=5000m。(金錢類型)
String 和string在c#中都一樣。String是.net平台中共用類型。string是c#中專有的。它們兩個都會映射到System.class類中。
4、命名規範
*1、Camel命名規範(多用於變數命名):首單詞首字母小寫,其餘單字首大寫。
*2、Pascal命名規範(多用於類或者方法命名):全部單字首大寫。
5、預留位置
用法:先挖個坑。再填個坑。
Console.WriteLine("..{0},...{1},...{2}",n1,n2,n3);
6、轉義符
\n:換行,可是在windows系統中不認識\n,僅僅認識\r\n。
\":輸出半形引號
\t:tab鍵(排版)
\b:退格。首尾放置無效。僅僅是退格一個。
@:1、取消\在字串中的轉義作用。
2、保留原格式輸出。
7、枚舉
=====枚舉與int和string之間轉換===
@1、枚舉類型預設能夠和int類型相互轉換 枚舉類型跟int是相容的
@2、枚舉類型轉換成string,用toString()。
枚舉類型 對象名 =(枚舉類型)Enum.Parse(typeof(枚舉名),string s);
8、屬性
慣使用方法:屬性開頭字母大寫。欄位開頭字母小寫。
class Person
{
private int age;
public int Age
{
set
{
this.age=value;
}
get
{
return this.age;
}
}
9、c#中無全域變數一說,僅僅能用靜態欄位來類比全域變數。
10、c#中三大參數
1)out參數:
假設在一個方法中返回多個同樣類型的值的時候,能夠考慮返回一個數組。
可是返回多個不同類型的值時就需用out。
out既能夠返回多個同樣值也能夠返回多個不同值。
事實上out作用就是:返回被調用函數的多個值。與一般返回方向是相反的。
注意:out定義變數必須在被調用函數中賦值。
2)ref參數:
可以將一個變數帶入一個方法中改變。改變完畢後。再將改變後的值帶出方法。
main()
{
int s=10。
Test(ref s)。
}
Test(ref s1)
{
s1+=3
}
3)parame參數:
可變參數
將實參列表中與可變參數數組中類型一致的類型當作數組的元素。既實參能夠不用聲明數組。
main
{
test(“為”。34,389。34);
}
test(string name。params int[] score)
{
}
11、方法的重載和返回值無關。至於方法名、參數類型、個數有關。
12、靜態與非靜態差別
1)、在非靜態類中。既能夠有執行個體成員,也能夠靜態方法。
靜態類中僅僅能出現靜態成員。
2)、在調用執行個體成員時候。須要使用對象名.執行個體成員;
在調用靜態成員的時候,須要類名.靜態方法。
總結:靜態成員必須使用類名去調用,執行個體成員用對象去調用。
靜態函數中僅僅能訪問靜態成員,不同意訪問執行個體成員。
執行個體方法既能夠使用靜態成員。也能夠使用執行個體成員。
靜態類中僅僅能出現靜態成員。靜態類無法執行個體化。
使用:
1)、假設你想要你的類當做一個“工具類”去使用,這個時候能夠考慮寫成靜態類
2)、靜態類在整個項目資源共用。
靜態類是占記憶體的。
GC Garbage Collection 記憶體回收行程。
13、建構函式
作用:協助我們初始化對象,建構函式是一個特殊的方法。
1)建構函式沒有返回值。連void也沒有
2)建構函式的名稱必須和類名一樣。
14、new
1)在記憶體中開闢一塊空間;
2)再開闢的空間中建立對象;
3)調用對象的建構函式初始化對象。
建構函式必須是public。
15、this
1)代表當前類的對象。
2)在類其中顯式調用本類的建構函式 :this
16、在一個項目中引用還有一個項目的類
1)、先引用項目
2)、引用還有一個項目的命名空間。
17、值類型和參考型別
差別:
1、值類型和參考型別在記憶體上儲存的地方不一樣
2、在傳遞值類型和傳遞參考型別的時候傳遞的方式不一樣。
值類型我們稱之值傳遞,參考型別我們稱之為引用傳遞。
值類型:int 、double、char、bool、decimal、struct、enum
參考型別:string、自己定義類
儲存:
值類型儲存在記憶體的棧中。
參考型別儲存在記憶體的堆中。
18、字串
1)、字串的不可變性,假設字串被又一次賦值,老值並不刪除,而是在棧中將老的
地址刪除。又一次給字串賦予新的地址值。
當程式結束後,GC掃描整個記憶體。假設發現有的空間沒有指向,則馬上銷毀。
2)、能夠將string類型看作是char類型的僅僅讀數組。
例:
string s="abcde";
//S[0]=‘B‘;不能這麼做。由於是僅僅讀的
//假設改變的話,首先需進行對string的轉換。
char []chs=s.ToCharArray();
//將字元數群組轉換成我們的字串
s=new string(chs);
Console.WriteLine(s[0]);
19、StringBuilder
當字串進行大量的迴圈累加時,會進行大量的開闢新的記憶體空間。比較慢。
計時:Stopwatch Start(); Stop(); Stopwatch.Elapsed //記錄執行的總時間。
StringBuilder.Append(i);追加方式進行累加。
StringBuilder會節省非常大時間。原因在於它不開闢新空間。然後再將StringBuilder轉換為String
20、字串方法
1)、Length()
2)、ToUpper()
3)、ToLower()
4)Equals(str1。StringComparision.OrdinalIgnoreCase):比較兩個字串是否一致
,並忽略大寫和小寫。
5)、Splite(字元數組。StringSplitOptions.RemoveEmptyEntries),則將字元數組內容刪除,而且不返回空數組和null。
6)、Contains()
7)、Replace(str1,str2)
8)、string.Substring();
9)、string.StartWith()/EndWith()
10)、string.indexof()返回int類型,返回字串首先出現的位置
11)、string.LastIndexof()最後一個字串出現的位置。
12)、string.trim()移除字串中全部空格。string.trimStart()/trimEnd();
13)、string.IsNullOrEmpty()
14)、string.Join();它可以被添加到陣資料行分隔符號規定磨削。
著作權聲明:本文博主原創文章,部落格,未經同意不得轉載。
c#基於這些,你已經看到了?(一)-----誰才剛剛開始學習使用