Time of Update: 2017-02-28
C#2.0實現的Nullable資料類型,雖然說只是一個小小的cookie,但不得不說是C#矢志不渝的延續了它人性化的特點,我們終於不用再使用object來存放簡單資料來通過==null測試。從表面上看這個功能或許並無太大的創新意義,但不知你是否也和我一樣在記憶裡埋有對類似int a=null;通不過編譯時間的抱怨?
Time of Update: 2017-02-28
今天用C#2.0的泛型改寫了我的一個系統的訊息實現,感覺非常不錯,很簡潔而且速度快了(MSDN上那麼說的,暗示誘導使我也有此感覺,呵呵)。我們嘮會兒嗑,回顧一下經典內容:.NET架構的訊息模型,構建於一個串連事件控制代碼的代理(delegate),要想觸發某個事件,兩個基本元素是必須考慮的: 1、事件的源頭觸發者,它定義了一個事件:public class EventSender{ ...
Time of Update: 2017-02-28
變數 首先說明一下,此新特性的專題基於MS五月份分布的C#3.0規範,但是官方中文版還沒有出來,結合自己的實踐和理解,希望能和大家一起分享某些前沿的東東,很有可能一些地方會出錯,望拋磚。 在C# 3.0裡面, 可以對局部變數進行隱式型別宣告, 就是在聲明時可以不指定該變數的類型, 變數在初始化的時候會由編譯器從運算式的上下文中推出真正的類型, 對開發人員來說, 無疑是簡化了很多, 主要是通過新的關鍵字var, 有如下面的例子:var i =
Time of Update: 2017-02-28
visual|快速入門|文法 對於那些從未見過C#代碼的讀者,本文將介紹C#程式設計語言的基本文法。記住,現在只是對C#的淺嘗輒止,僅足以協助你理解本文中的範例代碼。在後面我們還會充分地深入C#語言,建立一個功能完整的學生選課系統(Student Registration System, SRS)應用程式。 如果你還沒有花時間閱讀本書前言,現在正當其時!SRS系統的需求在文前介紹篇的末尾部分被作為一個案例來介紹。 “虛擬碼”vs.真正的C#
Time of Update: 2017-02-28
visual|變數|快速入門 與現實世界不同,在編程的世界中,每一件事情要麼黑,要麼白;要麼對,要麼錯;要麼是真的,要麼是假的。例如,假定你建立一個名為x的整數變數,把值99賦給x,然後問:“x中包含了值99嗎?”答案顯然是肯定的。如果你問:“x小於10嗎?”答案顯然是否定的。這些正是布爾(Boolean)運算式的例子。一個布林運算式肯定求值為true或false。
Time of Update: 2017-02-28
遞迴|貨幣|中文|轉換 最近由於項目的原因,需要寫一個貨幣數字轉換中文的演算法,先在網了找了一下,結果發現無一列外都是用(Replace)替換的方式來實現的,所以想寫個另外的演算法;因為本人是學數學出身的,所以用純數學的方法實現。 注意:本文中的演算法支援小於1023 (也就是9999億兆)貨幣數字轉化。 貨幣中文說明: 在說明代碼之前,首先讓我們回顧一下貨幣的讀法。 10020002.23 讀為 壹仟零貳萬零貳元貳角三分
Time of Update: 2017-02-28
datagrid|window|建立|資料 筆者以前很少使用vs.net中的datagrid,原因是覺得不是很好用,昨天突然想起來,用一個簡單的類,來實現手工建立資料列,這樣可以自訂欄名和綁定資料欄位,使用起來比較方面的~~類:exDataGrid.csusing System;using System.Drawing;using System.Collections;using
Time of Update: 2017-02-28
壓縮|原創 .NET Framework 2.0 中新增的兩個壓縮類System.IO.Compression 命名空間 注意:此命名空間在 .NET Framework 2.0 版中是新增的。 System.IO.Compression 命名空間包含提供基本的流壓縮和解壓縮服務的類。 (downmoon原作)
Time of Update: 2017-02-28
Anonymous Methods 是
Time of Update: 2017-02-28
控制項 製作異形表單或控制項的思路一般都是想辦法產生一個region,然後設定給指定的視窗或控制項。產生region的方法有很多,最常用的就是從一幅圖片產生,把該圖片中的透明色部分“摳”掉,剩下的部分作為一個region。設定視窗或控制項的region可以用SetWindowRgn API,不過.NET
Time of Update: 2017-02-28
規範 第五章 不完全類型5.1 不完全聲明 在定義一個分為多個部分的類型時,要使用一個新的類型修飾符——partial。為了保證和現有代碼的相容性,這個標識符和其他標識符不同:與get和set相同,它不是一個關鍵字,而且它必須直接出現在關鍵字class、struct和interface之一的前面。class-declaration: attributesopt class-modifiersopt
Time of Update: 2017-02-28
這篇文章是翻譯的微軟的技術文章.供學習c#的朋友參考,請勿用於商業目的。http://msdn.microsoft.com/vcsharp/team/language/default.aspx由於這一章非常長可能需要分幾篇:)20.泛型20.1泛型類聲明泛型類聲明是一個需要提供型別參數以形成實際類型的類的聲明。 類聲明可以有選擇地定義型別參數。class-declaration: (類聲明)attributesopt class-modifiersopt class
Time of Update: 2017-02-28
C#2.0簡介 C# 2.0引入了很多語言擴充,最重要的就是泛型(Generics)、匿名方法(Anonymous Methods)、迭代器(Iterators)和不完全類型(Partial Types)。• 泛型允許類、結構、介面、委託和方法通過它們所存貯和操作的資料的類型來參數化。泛型是很有用的,因為它提供了更為強大的編譯期間類型檢查,需要更少的資料類型之間的顯式轉換,並且減少了對裝箱操作的需要和運行時的類型檢查。•
Time of Update: 2017-02-28
datagrid|xml 以下的源碼裡分別給出了將DBF,XLS,XML,MDB檔案匯入C#DataGrid的方法,供各位參考。//PutInDataSet.cs的源碼using System;using System.Data.Odbc;using System.Data.OleDb;using System.Data;using System.Collections;namespace PutInDataSet{ ///
Time of Update: 2017-02-28
控制項 製作異形表單或控制項的思路一般都是想辦法產生一個region,然後設定給指定的視窗或控制項。產生region的方法有很多,最常用的就是從一幅圖片產生,把該圖片中的透明色部分“摳”掉,剩下的部分作為一個region。設定視窗或控制項的region可以用SetWindowRgn API,不過.NET
Time of Update: 2017-02-28
C#中的介面interface [public|protected|private] interface InterfaceName{ //mothed// propery// event//delegate}在實現介面時,帶介面名與不帶介面的區別 不帶的區別eg: public interface IMyShow { void Show(); } public class MyShow:IMyShow { public void Show()//必須寫上前的public若寫成void
Time of Update: 2017-02-28
window|控制項 以下是我測試TextBox事件的結果,如有不對,還望更正。一、用滑鼠點擊控制項,然後離開。EnterGotFocusLostFocusLeaveValidatingValidated二、用滑鼠,當 Validating 中 CancelEventArgs.Cancel = true
Time of Update: 2017-02-28
[DllImport("user32.dll", CharSet = CharSet.Auto)]private static extern int SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int x, int y, int Width, int Height, int flags);/// <summary>/// 得到當前活動的視窗/// </summary>///
Time of Update: 2017-02-28
擴充MongoDB C# Driver的QueryBuilder由於不想直接hardcode "ClassA.MemberA.MemberB" 這樣的字串 ,寫了以下幾個類,用於以下常用的情境:1. 運算式轉換成字串函數: ExpToStr()2. Collection函數:當有集合成員時,可以使用此類,將返回QueryCollection對象,這個類的代碼之後附上3.
Time of Update: 2017-02-28
項目update到了mongoDB C# driver 2.2 , 發現從1.9到2.0的變化還是很大的,整合了一些常用的操作附加demo代碼: class Program { const string CollectionName = "video"; static void Main(string[] args) { // remove the demo collection then