一、.Net基礎【1.0】入門


1.C#、.Net和ASP.Net

  • .Net是一個平台,提供了運行.Net程序需要的虛擬機、類庫等
  • C#是.Net平台下的一個語言,.Net下的語言還有VB.Net、PowerShell等
  • ASP.Net是.Net下開發網站的技術

讀音:dot net、點兒奈特
C#:C Sharp,C沙坡

常用的開發工具是Visual Studio,簡稱VS;如果不用VS開發,其實安裝.Net Framework即可運行.Net開發的程序,裝VS的時候把.Net Framework同時裝上了。運行程序也不需要裝VS,有.Net Framework即可。

2.關於項目(Project)

什么時候新建一個項目:相關功能放到一個項目中,QQ:文件傳輸、聊天、視頻聊天、QQ群。
解決方案:相關的項目放在一個解決方案中,避免一個解決方案中項目太多,也不便於管理。
創建解決方案(Solution):一個解決方案下建多個項目(Project),多個相關的項目放到同一個解決方案中;還有一種快速建立解決方案和第一個項目的方法;
打開其他解決方案的方法:.sln。
打開其他項目的方法:.csproj
sln、csproj只是文件的結構,還要cs等文件;

 3.項目的生成(Build)

項目“生成”就是把項目中的代碼編譯(Compile)成二進制可執行程序(exe、dll等),dll無法獨立運行;
修改代碼后,如果不“生成”,那么exe中還是舊的運行效果;
修改代碼后直接運行exe還是之前的代碼,“開始執行”或者“開始調試”后會自動保存並且“生成”;

3.1“生成解決方案”和“重新生成解決方案”有什么區別?

  • 生成解決方案:已經是最新的就跳過。
  • 重新生成解決方案:先把已經生成好的全部刪掉,然后再生成一遍。

3.2 Debug和Release有什么區別?

  • Debug 通常稱為調試版本,它包含調試信息,並且不作任何優化,便於程序員調試程序。
  • Release 稱為發布版本,它往往是進行了各種優化,使得程序在代碼大小和運行速度上都是最優的,以便用戶很好地使用。

4.控制台編程

  • Console.WriteLine(“Hello”)是在屏幕的當前位置輸出一個字符串,並且在結尾換行;Console.WriteLine()是只執行換行;Console.Write(“RuPeng”)是在屏幕的當前位置輸出一個字符串,不換行。這幾個Write支持各種數據類型。
  • Console.Beep():是讓計算機發出蜂鳴聲(有些計算機可能不支持); Console.Beep(1000,1000);是指定頻率和持續時長(毫秒); (*)趣味: Beep音樂.txt
  • Console.Clear()清除屏幕上的內容;
  • Console.ReadKey()等待用戶輸入一個按鍵再繼續向下執行,(*)可以通過返回值獲取哪個按鍵被按下。不要錯用成了Console.Read()。因為Main執行結束后程序就退出了,為了避免控制台程序一閃而過,一般最后加上一行Console.ReadKey()。不要亂加Console.ReadKey()
  • string s = Console.ReadLine();等待用戶輸入一行字符串,直到回車;通過返回值獲取用戶輸入的內容。
  • Console.Write**();Console.Read**()默認都是把光標顯示到當前位置(自動流動)
  • Console.SetCursorPosition(5, 5)設定光標位置,后面的輸入、輸出都會從這個位置開始“流動”;默認寬和高分別是80*25個字符。縱向可以滾屏,但是不能滾太多。
  • Console.BackgroundColor = ConsoleColor.Red;設置背景顏色。 Console.ForegroundColor = ConsoleColor.Yellow;設置前景顏色; 設置之后的受影響,之前的不受影響。注意這里是給“屬性”賦值,和方法調用不一樣,還涉及到“枚舉”。“屬性”、“枚舉”以后會講,先暫時記住用法。
  • Console.ResetColor():恢復前景、背景顏色的默認值;
  • Console.Title = “hello”;設置控制台標題;顏色不能改。
  • 除了這里講的,其他的Console方法不用研究,也不用琢磨“***效果如何實現”,控制台編程不是重點。

5.反編譯

反編譯工具: ILSpy、 Reflector (收費,可能會搞崩VS)
把編譯程序“反編譯”為cs代碼。從原理上無法原樣還原,比如:

  • 注釋沒有;
  • 編譯器優化:int i=5+6;(被優化掉了)加上一個WriteLine(常量合並),修改后ILSpy中Reload
  • 反編譯工具的bug、不足

.Net反編譯工具不能反編譯用C等開發的程序。
如何避免反編譯:混淆器。沒有太大研究價值。因為現在主要都是在做asp.net web開發;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM