1, Visual Studio Code 添加VS 2017的開發人員命令提示符---C#編譯環境html
2, C#編譯器和CLI的安裝函數
注意:本身的電腦上配置環境變量時,配置在系統變量的Path中並無效果,(只)配置在用戶變量中卻有效果。post
C:\Windows\Microsoft.NET\Framework64\v4.0.30319ui
3, C#程序結構分析實例this
不只是結構分析,代碼自己的 棧 類,也要仔細分析下,頗有意思。1000的item裏有個屬性是next,指向了100的item,100的item的next屬性又指向了10的item......url
首先,咱們來輸入一段C#程序spa
using System; namespace Acme.Collections { public class Stack { Entry top; public void Push(object data) { top = new Entry(top, data); } public object Pop() { if (top == null) throw new InvalidOperationException(); object result = top.data; top = top.next; return result; } class Entry { public Entry next; public object data; public Entry(Entry next, object data) { this.next = next; this.data = data; } } } }
在名爲Acme.Collections 的命名空間中聲明瞭一個名爲Stack 的類。Acme.Collections.Stack 是此類的徹底限定名。該類包含幾個成員:一個名爲top 的字段,兩個分別名爲Push 和Pop 的方法和一個名爲Entry 的嵌套類。Entry 類還包含三個成員:一個名爲next 的字段、一個名爲data 的字段和一個構造函數。假定將此示例的源代碼存儲在文件acme.cs 中,執行如下命令行:csc /t:library acme.cs,將此示例編譯爲一個庫(沒有Main 入口點的代碼),併產生一個名爲acme.dll 的程序集。程序集包含中間語言(Intermediate Language, IL) 指令形式的可執行代碼和元數據(metadata) 形式的符號信息。在執行程序集以前,.NET 公共語言運行時的實時(JIT) 編譯器將程序集中的IL 代碼自動轉換爲特定於處理器的代碼。因爲程序集是一個自描述的功能單元,它既包含代碼又包含元數據,所以,C# 中不須要#include 指令和頭文件。若要在C# 程序中使用某特定程序集中包含的公共類型和成員,只需在編譯程序時引用該程序集便可。例如,下面的程序將使用來自acme.dll 程序集的Acme.Collections.Stack 類:.net
using System; using Acme.Collections; class Test { static void Main() { Stack s = new Stack(); s.Push(1); s.Push(10); s.Push(100); Console.WriteLine(s.Pop()); Console.WriteLine(s.Pop()); Console.WriteLine(s.Pop()); } }
若是此程序存儲在文件test.cs 中,那麼在編譯test.cs 時,可使用編譯器的/r 選項引用acme.dll 程序集:
csc /r:acme.dll test.cs
這樣將建立名爲test.exe 的可執行程序集,運行結果以下:
100
10
1
C# 容許將一個程序的源文本存儲在多個源文件中。在編譯多個文件組成的C# 程序時,全部源文件將一塊兒處理,而且源文件能夠自由地相互引用— 從概念上講,就像是在處理以前將全部源文件合併爲一個大文件。C# 中從不須要前向聲明,由於除了極少數的例外狀況,聲明順序可有可無。C# 不限制一個源文件只能聲明一個公共類型,也不要求源文件的名稱與該源文件中聲明的類型匹配。命令行經過上述分析,對你查閱MSDN的文檔將有必定的幫助,不會再由於那些什麼惱人的類啊,方法啊發愁了。code
4,C#解析xml相關:
當xml中帶有命名空間時(不管此命名空間是默認的仍是有別名的),使用xmlDocument的selectNodes()等方法時須要傳入第二個參數,即命名空間管理器。命名空間的名字能夠本身隨意取,只要在 xpath(即selectNodes()的第一個參數)中能對應起來就能夠。好比,原始的xml 有個命名空間 xmlns:o="http://www.a.com", 咱們能夠這麼使用:
XmlDocument xmlRelDoc = new XmlDocument(); xmlRelDoc.Load(relXmlPath); XmlNamespaceManager nsp = new XmlNamespaceManager(xmlRelDoc.NameTable); nsp.AddNamespace("y", "http://www.a.com");//這裏的y是本身隨便取得,只要在下面xPath中也使用相同的名稱就能夠了。
一樣,若是原始的xml的命名空間就只是默認的 xmlns="http://www.b.com", 咱們在調用selectNodes()方法的時候(必須)也要給它起個別名(隨意取),而後在下面xPath中使用此別名 XmlNodeList relationNodes = xmlRelDoc.SelectNodes("//y:Relationship", nsp)
2, //表示後代, 如a//b 表示a節點後代的全部b節點
5,
6,