標籤:c#
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#基礎這些你都看過嗎?(一)-----僅供初學者使用