Time of Update: 2018-12-08
json作為互連網上輕量便捷的資料轉送格式,越來越受到重視。但在伺服器端編程過程中,我們常常希望能通過智能提示來提高編碼效率。JSON C# Class Generator 能將json格式所表示的Javascript對象轉化成強型別的C#實體類,來實現減少代碼輸入的效果。http://jsonclassgenerator.codeplex.com/ ----開源的winform工具。http://json2csharp.com/---一款線上轉化工具,大家看名字就知道了。
Time of Update: 2018-12-08
折騰幾天記載一下,由於項目實際需要,從edmx產生的實體類能自動繼承自訂的基類,這個基類不是從edmx檔案中添加的Entityobject。利用ADO.NET C# POCO Entity Generator With WCF Support產生的tt檔案(比如model.tt)中找到<#=Accessibility.ForType(entity)#> <#=code.SpaceAfter(code.AbstractOption(entity))#>partial
Time of Update: 2018-12-08
c#用委託來實現事件通知機制。委託相當與c++函數指標。整個過程涉及一個呼叫者,一個被呼叫者,還有就是這個委託。- 實現步驟有以下幾步: 1. 申明委託, 2.定義呼叫者和調用的函數, 3.定義被呼叫者和具體實現的函數(被調用的函數)1.申明委託 ,在包裡或者類裡,public Code highlighting produced by Actipro CodeHighlighter
Time of Update: 2018-12-08
C#的核心文法和Java的文法很相似。然而,並不能說C#抄襲了Java。C#和Java都屬於C語言系列(包括C、Objective C、C++等),它們有類似的文法。正如Java在許多方面是C++的提煉版一樣,C#也可以視為Java的提煉版。 實際上,C#的許多文法結構與VB 6.0和C++的很多方面都大有淵源。例如,與VB6類似,C#支援正式的類型屬性(property,即內部用get、set來實現)的概念(與傳統的擷取方法和設定方法相反),且支援方法使用參數數組。與C++類似,C#
Time of Update: 2018-12-08
老田:但看這個申明符號確實沒有什麼用。不過當它和#if、#elif、#else、#endif這些預先處理指令結合起來之後,它的功能就非常強大了。 來看個樣本: #define debug //嘗試注釋和取消注釋這一句,然後運行程式看效果 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace第二章_樣本 {
Time of Update: 2018-12-08
----------------db.cs------------------------------ // TODO: 在此處添加建構函式邏輯 // } public static SqlConnection createConnection() { SqlConnection con=new SqlConnection("server=.;database=list;uid=sa;pwd=;"); return con; } }}-----------------------
Time of Update: 2018-12-08
#pragma指令可以在類或者方法上執行。對抑制警告的內容和抑制的時間進行更精細的控制。 小天:我覺得警告這個東西,特別是我們自己定義的警告,可能有時候僅僅是為了編程中給自己提醒。諸如此類的警告其實並不影響程式,是否有什麼辦法可以抑制或者恢複製定的編譯警告呢? 老田:有的,#pragma指令的作用就是這個。與命令列選項不同,#pragma指令可以在類或者方法上執行。對抑制警告的內容和抑制的時間進行更精細的控制。下面的例子就是禁止欄位使用警告,然後在編譯完當前類之後恢複該警告。 #p
Time of Update: 2018-12-08
#define可讓您定義符號。當您將符號用作傳遞給 #if 指令的運算式時,此運算式的計算結果為true。而#undef正好相反,它使您可以取消符號的定義,以便通過將該符號用作 #if 指令中的運算式,使運算式的計算結果為false。 定義方法為關鍵詞 + 空格 + 要定義的符號,例如 #define DEBUG //申明符號DEBUG #undef DEBUG
Time of Update: 2018-12-08
與其它的語言的編譯器不同,無論代碼中是都有空格、斷行符號或者tab字元等空格符,C#編譯器都不考慮這些字元。 C#代碼的外觀和操作方式與C++和JAVA非常的類似。初看起來,其文法可能比較混亂,不像書面英語或者其它的語言,但是,在C#編程中,使用的樣式是比較清晰的,不用花太多的力氣就可以編寫出可讀性很強的代碼。 與其它的語言的編譯器不同,無論代碼中是都有空格、斷行符號或者tab字元等空格符,C#編譯器都不考慮這些字元。這樣格式化代碼就有很大的自由度,但是遵循某些規則將有助於使代碼
Time of Update: 2018-12-08
小天:我昏了,我已經昏了,上面出現好多的"後面討論"。這個怎麼學啊。還有資料類型,我感覺也很迷糊。 老田:對於前面的知識點,特別是那些例題,並不要求你現在就搞清楚。只要你能夠明白例題中所闡述的效果,然後記住這些概念。下面我們就來學習C#中的預定義資料類型。 與其它語言相比,C#對其可用的類型及其定義有更嚴格的描述。 在開始介紹C#中的資料類型之前,理解C#把資料類型分為兩種是非常重要的: ●實值型別 ●參考型別 下面幾節將詳細介紹實值型別和參考型別的文法。從概念上看,其
Time of Update: 2018-12-08
在錯誤清單中,每一個錯誤或者警告後面都有詳細的顯示了具體報錯的是某個項目中的某個檔,多少行,多少列。這個整下我這樣的新手,還成。不過效果不是很明顯。 小天:額…老田,你太壞了。不過,我覺得你很壞,但是C#不壞,你看,在錯誤清單中,每一個錯誤或者警告後面都有詳細的顯示了具體報錯的是某個項目中的某個檔,多少行,多少列。這個整下我這樣的新手,還成。不過效果不是很明顯。 老田:真的嗎?嘿嘿,我就在上面的例題中再增加一行代碼,僅僅是一行代碼哦。增加的代碼如下 #line 300
Time of Update: 2018-12-08
從工具箱中拖四個Label控制項到介面上,並分別修改Text屬性為"姓名:、年齡:、結果:和訊息",注意最後一個Label(就是Text屬性為"訊息"這個Label控制項的NAME屬性); 小天:這麼多資料類型,它們之間一定會有混合使用的時候。比如我們讓使用者輸入使用者名稱和年齡,然後顯示出結果。 老田:你說的這個最好使用WinForm來做。因為這隻是第二次做,我們把步驟說下: 1.建立一個名為"類型轉換和裝拆箱"的Windows傳統型應用程式項目; 2.從工具箱中拖
Time of Update: 2018-12-08
接下來介紹一種C#中一種從來不會被轉化為可執行代碼,但卻會影響編譯過程的特殊指令。它們就是預先處理指令。 小天:既然從來都不會被執行,有什麼用啊?雖然注釋也都不會被執行,但是人家能夠協助我們使代碼更容易閱讀。 老田:所謂的預先處理指令,就是用來控制編譯器工作的一些指令,比如說使用預先處理指令來禁止編譯器編譯代碼的某一部分。就拿我們使用的Windows作業系統、Visual
Time of Update: 2018-12-08
接著我們開始絕大部分程式設計語言都有切都是第一基礎的知識點,就是變數。變數是電腦編程中的一個重要概念。變數是一個可以儲存值的字母或名稱。 當你編程時,可使用變數來儲存數字,例如建築物的高度,或者儲存單詞,例如人的名字,在物件導向的編程(OOP)中,可以是一個對象。簡單地說,可使用變數表示程式所需的任何資訊。 你可能會問:"既然我可以使用資訊,為什麼要用變數?"
Time of Update: 2018-12-08
申明變數和初始化的過程比喻為修房子和入住。這個過程中共涉及到三個對象,變數名、存放變數的記憶體空間、值。而修房子和入住這個過程中與之對應的三個對象是,房子,地址 在C#中聲明變數使用下述文法: 資料類型變數標示符;//申明的文法 變數標示符 = 值;//為變數初始化 //第二種方式 資料類型變數標示符 = 值;//申明變數的同時初始設定變數 例如: string name;//申明一個名為name 的string 類型的變數 name="小天";
Time of Update: 2018-12-08
上面已經說到,隱式轉換就是不需要什麼文法申明,例如: byte bt = 1; short s = 35; int x = bt; //將byte類型直接交給int類型,這就是一次隱式轉換 int y = s; //同上 轉換有一個前提,那就是只要能保證值不會發生任何變化,類型轉換就可以成功進行。但是,在轉換之前編譯器會判斷一次,這個判斷是不管值是否能夠保證的。編譯器只看類型的大小。所以隱式轉換的前提是,位元小的類型向大的轉換,且能夠保證值不發生變化就可以自動轉換。
Time of Update: 2018-12-08
小天:我跟著你的例題一路做下來,發現一個不大不小的問題,就是前面做的樣本我想做完了就留下來以後做個參考。所以不能刪了。但是一個例題就那麼一點點代碼,我又不想重建立立一個程式。於是,我就想能不能把一段一段的代碼給隱藏起來,就像Windows資源管理員中那個樹形菜單一樣,可以展開,可以收縮。
Time of Update: 2018-12-08
有5個簡單的數學運算子,其中2個有二元和一元兩種形式.下表列出了這些運算子,並用一個樣本來說明它們的用法,以及使用簡單的數實值型別(整數和浮點數)時它們的結果 運算子 類別 樣本運算式 結 果 + 二元 var1 = var2 + var3; var1的值是var2與var3的和 - 二元
Time of Update: 2018-12-08
這兩種類型儲存在記憶體的不同地方:實值型別儲存在堆棧中,而參考型別儲存在託管堆上。注意區分某個類型是實值型別還是參考型別,因為這種儲存位置的不同會有不同的影響。 例如,int是實值型別,這表示下面的語句會在記憶體的兩個地方儲存值20: using System; namespace預定義類型 { classProgram { staticvoid Main(string[] args) { int i = 20; int t =
Time of Update: 2018-12-08
前面介紹了變數、資料類型、型別安全等,我們看到使用了賦值運算子" = "。其實在C#中還包含許多進行這類處理的運算子。 把變數和字面值(在使用運算子時,它們都稱為運算元)與運算子組合起來,就可以建立運算式,它是計算的基本建立塊。 運算子的範圍非常廣泛,有簡單的,也有非常複雜的,其中一些可能只在數學應用程式中使用。簡單的操作包括所有的基本數學操作,例如+運算子是把兩個運算元加在一起,而複雜的操作則包括通過變數內容的二進位表示來處理它們。還有專門用於處理布爾值的邏輯運算子,以及賦值運算子,