.NET Core .NET Framework和Visual Studio是什么?
.NET Framework和.NET Core是一個代碼庫,這個庫有很多模塊,創(chuàng)建不同的程序(桌面程序、web程序等)引用不同的多個需要的模塊。
.NET是一個平臺,也是一個標準。都是這個標準下的代碼庫。
Visual Studio是強大的集成開發(fā)環(huán)境,支持C#、C++、VB等其它語言。
.NET Core 和 .NET Framework的區(qū)別?
.NET是一個平臺,也是一個標準。它下面主要有三大代碼庫:.NET Core 、.NET Framework、Xamarin。
早起情況:如下圖

2019年9月24號,.NET Core3.0版本發(fā)布。NET Core也開始支持WPF 和 Windows Forms。
現(xiàn)在NET Core還在繼續(xù)適用更多的平臺,和更多的場景發(fā)展。
.NET Framework如何編寫應用程序?
- 使用開發(fā)語言(C#、C++、VB等)編寫程序。
- 使用開發(fā)環(huán)境把開發(fā)語言編譯成中間語言(Common Intermediate Languagesage , CIL);存儲在程序集里。
程序集:包含1、可執(zhí)行文件如.exe 2、依賴的庫如.dll 3、元數(shù)據(jù)即數(shù)據(jù)信息 4、資源文件如圖片音頻視頻 ;最后程序集一定是在注冊表注冊的,程序集復制到有.NET CLR的電腦目錄就可以運行了。 - 使用JTI編譯器把程序集編譯為本機代碼。
- 本機代碼在托管的CLR環(huán)境運行。
托管代碼的意義:可以管理內存(垃圾回收機制)、處理安全性、處理跨語言調試。
垃圾回收機制:定期檢查計算機內存,從中刪除不需要的內容,釋放內存。注意:垃圾回收有可能1s多次,也有可能幾秒一次;所以對于那些需要內存很多的代碼,應該自己清理內存。 - 使用JTI編譯器把程序集編譯為本機代碼。
Visual Studio解決方案的理解
解決方案可以包含多個不同類型的項目,多個程序集可以共享代碼。
Visual Studio(Windows)常用快捷鍵和基本操作
Ctrl + K + C 注釋多行代碼
Ctrl + K+ U 取消注釋多行
F5運行項目;“Shift+F7”停止調試項目
F11從斷點處開始,一行一行的運行代碼;
F10從斷點處開始執(zhí)行到當前方法末尾;
“Shift+F11”從當前斷點跳到下一個斷點;
點擊一個方法名字,F(xiàn)12進入查看詳情,右上角顯示該類信息
“Ctrl+F4”關閉打開的文件
選中控件F4調用屬性面板;雙擊控件生成對應默認(點擊)方法
雙擊窗體打開對應代碼文件;在代碼文件“Shift+F7”打開對應設計界面。
一個解決方案多個項目時候,設置啟動按鈕對應哪個項目:選中解決方案,右鍵”設置啟動項目“
1、快捷寫事件
打出m_threadComServer.Started(這里注意,打出類名后如果事件是??符合)
再打出+=,然后按tab鍵,就可以補齊事件名字,(注意此時事件名字是綠色你可以修改這個名字)
修改建議名字后,按enter鍵。該類會自動創(chuàng)建事件的名字。
2、查看哪里定義,查看哪里引用了這個方法
入口方法調用了很多方法:想找到這個方法具體位置:F12查看方法的具體實現(xiàn);Ctrl+F12查看這個方法在哪里定義
看到一個方法都有哪些地方引用了它:點擊方法名字上面的引用,就會看到都有哪里引用了它;
3、事件的添加,在屬性面板,閃電符號里面。
4、輸入一個字符串,忘記具體單詞,可以Ctrl+".",會有建議輸入或者建議引入頭文件。
5、代碼模版,輸入for、class、prop、propfull,連續(xù)點擊兩下tab,自動生成代碼模版。
Visual Studio(Mac)常用快捷鍵和基本操作
C#常用語法:
1、#region 備注內容(可以在大綱試圖顯示,方便查看代碼;類似于iOS的#pragma mark 備注)
配套使用的還有#endregion
2、using(){} 對象在范圍內可用,超過范圍就釋放內存;如果范圍內異常,也會釋放對象內存。代替了try catch
using ( SqlConnection conn = new SqlConnection(strConn))
{
//創(chuàng)建一個Sql命令對象
using (SqlCommand cmd = new SqlCommand())
{
//給命令對象指定 連接對象。
cmd.Connection = conn;
conn.Open(); //一定要在執(zhí)行命令之前打開就可以了。
//此屬性放我們的sql腳本
cmd.CommandText = "insert into DboUserInfo(Name,DelFlag,Demo,cons)values('4444448888',0,'sss',0)";
cmd.ExecuteNonQuery(); //執(zhí)行一個非查詢sql語句,返回受影響的行數(shù)。
//cmd.CommandText = "sel";
//cmd.ExecuteNonQuery()。。。。
}
}
3、計時器(Stopwatch)
Stopwatch sw =new Stopwatch();//創(chuàng)建計時器
sw.Start();//開啟計時器
sw.Stop();//停止計時器
sw.Reset();//重置計時器
sw.Restart();//重啟計時器
sw.Stop();//停止計時器
Console.WriteLine(sw.Elapsed.Milliseconds);//打印計時時間