新建記事本,名字為 helloworld.cs
using簡單的使用csc命令編譯:system;
namespace
hello}}
我的目錄在:c:\program files (x86)\microsoft visual studio 12.0\common7\tools\vsvars32.bat
輸入命令:csc /out: 輸出目錄及檔名(.dll或者.exe) 源**檔案
csc /out:f:\net\2023年12常用的還有csc /t:library 源**檔案 編譯成dll月25日003728\helloworld.exe f:\net\2023年12月25日003728\helloworld.cs
csc /t:exe 源**檔案 編譯成exe
csc /t:module 源**檔案
csc /t:winexe 源**檔案
/r用來指定引用的dll
源**主入口檔案可以是 *.cs表示編譯資料夾下的所有cs檔案
或者生成xml檔案-》 csc 源**檔案 /doc:路徑+檔名.xml
或者/main:指定哪個方法作為程式的入口點
當然還有其他形式,不具體介紹了,雖然你看似沒用,但是 舉個實際案例:專案持續發布軟體,都是自己拉取svn**,然後自動編譯,或者網頁上開發人員自己點編譯,現在覺得還沒用嗎?
這兩種資料儲存在記憶體的不同的地方。值型別儲存在堆疊中,儲存值,而引用型別儲存在託管堆上,簡稱堆上,儲存引用位址。
拆箱與裝箱的本質:值型別在轉換到system.object時引發的堆疊和堆的一系列的移動操作。裝箱:值型別從堆疊上被複製到堆上,而拆箱時從堆上覆制到堆疊上。所以對效能有影響
下面看個 ay=null 說明 ay是個引用型別,表示它不引用任何物件
除了眾所周知的一些型別,重點講下 struct 值型別 和class引用型別
結構可以擁有屬性和方法,但沒有繼承可言,結構可以重寫system.object的虛方法,但不能定義新的虛方法或者抽象方法。不能擁有無參建構函式,也不能為成員變數定義初始值。但效能好,class的功能更多。
類和結構實際上是建立物件的模板。
3.1列舉一些值型別
1.整型(從位數少到多排列 8,16,32,64) 有符號(sbyte,short,int,long) 無符號(byte,ushort,uint,ulong),它們每個都對應了cts中的乙個型別,例如long 對應system.int64
2.浮點(從位數少到多排列 32,64) float(cts:system.single) 32位單精度浮點數 double(cts:system.double) 62位雙精度浮點數,例如 float ay=12.3f,double ay1=12.3e2,e2代表10的指數是2,就是12.3乘以10的2次方
decimal (cts:system.decimal) 128位高精度十進位制數表示法,數字後面加m表示decimal
3.bool (cts:system.boolean)
4.char (cts:system.char) 16位的(unicode)字元
5.列舉enum
3.2列舉一些引用型別
object,string等
這裡的string很特殊,是個引用型別,比如2個string 同時引用乙個string位址,當s1修改值時候,s2沒有變化,因為修改乙個字串,就會建立乙個全新的string物件,不信可以執行下面例子。string是比較特殊的引用型別,本質上是運算子過載的結果
string s1 = "s1"效果:;
string s2 =s1;
console.writeline(s1);
console.writeline(s2);
s1= "
news1";
console.writeline(s1);
console.writeline(s2);
console.readline();
goto 不只是跳轉到指定標籤,還可以用在switch case中,跳轉到指定case裡面
跳標籤的方式,這裡不講了。
都知道可以 互相巢狀namespace,給namespace起別名操作,雙冒號提下吧
這裡的::效果等同於 點號,但是我沒說就是點號的替代品。
你肯定用過,例如 #region #endregion
1. #define 和#undef 例如 #define debug,經常與其他預處理器結合使用。
2.同樣c#還包括很多,例如#if #elif(等於 else if ) #else #endif,例如 #if debug #endif 表示 如果專案在debug模式下,就執行下面的**.
3.#warning "警告測試" #line #pragma
static 類名{}
不能有訪問修飾符,靜態建構函式至多執行1次。即在**引用類之前呼叫它。
不能帶引數,乙個類也只能1個靜態建構函式。只能訪問類的靜態成員,不能訪問類的例項成員。
他可以與無引數的建構函式共存。在靜態建構函式裡可以給外部的static readonly欄位賦值
建構函式提供了建構函式初始化器,使用this或者base呼叫。
例如 public a(string des):base(des,4){}
AaronYang C 人愛學不學 2
新建記事本,名字為 helloworld.cs using system namespace hello 簡單的使用csc命令編譯 我的目錄在 c program files x86 microsoft visual studio 12.0 common7 tools vsvars32.bat 輸入...
絕對隨筆 學還是不學,從模式說起
首先,恭賀包建強同志終於得償夙願,成為了腦袋的同事,哈哈。昨天和這廝聊天,提到我現在的想法基本是,設計程式沒有那麼多道道,關鍵就是腳踏實地的去幹。我現在最反感的就是用很多來自於技術社群的標準,去判斷乙個程式究竟是不是設計 實現的足夠好。老包似乎並不太認可 他說他在原來的公司的時候,和組裡其他人最大的...
愛總是讓人受傷
愛總是讓人受傷 代騰飛 2008年10月6日 於成都 愛總是令人那麼的神往 卻又總是讓人屢屢受傷 情總是那麼的熾熱蕩漾 卻又總是把人心靈灼傷 愛總以為可以地久天長 那份溫存卻過不了天亮 情總以為可以地老天荒 卻總讓人傷得遍體鱗傷 愛情總是以浪漫登場 分手的結局卻不知道如何收場 明明說了要彼此相忘 心...