Time of Update: 2018-12-05
http://blog.csdn.net/cuipengfei1/archive/2011/03/06/6227119.aspx前幾天推薦一個同事用“選擇性參數”,推薦完了我還畫蛇添足的說這是.Net 4中的新特性。但是事後才發現這個新特性是C#4.0的語言特性,與.Net4無關。其實也不只這一次,我平時也經常把語言、架構、運行時,有時甚至還有開發工具混為一談。於是今天就總結一下C#中我感興趣的幾個語言特性是從何而來的。1.選擇性參數選擇性參數是C#
Time of Update: 2018-12-05
在網上有很多人問到settings檔案存放的位置,本人看了一些文章都沒有給出明確的答案,所以讓我們一起來追蹤settings 檔案到底存放在什麼位置,它是否存在加密保護。 settings 為設定檔案,其功能類似於app.config 檔案,但相比app.config settings 結構相對簡單,它只有名稱、類型、範圍、值四個屬性,並且不能更改結構(當然是在一般情況下,如要修改結構可以通過其它的方式) 我們都知道app.config
Time of Update: 2018-12-05
■ dynamic類型與匿名型別匿名型別是指沒有名字,也沒有單獨定義的類型。嚴格說來,該類型還是有名字的,只是在C#的原始碼中我們看不到這個名字。但是,在4.0版本之前,匿名型別可以被有效利用的範圍並不是很大。因為要想在一個方法之外要利用匿名型別並不是不可能的,但是要想在方法之外利用匿名型別,就一定要使用反射。但是,dynamic類型把這個問題很容易地就給解決了。如果作為dynamic類型來返回,訪問它的內容就很簡單了。訪問使用dynamic類型與匿名型別的對象 using
Time of Update: 2018-12-05
之前一直想學學外掛程式編程, 主要的原因是感到現在的客戶需求變化不定 ,如果把全部功能整合在一個執行檔案中的話,修改,升級起來很不方便, 所以想採用外掛程式編程的方式, 只需要構建好了程式架構之後, 每完成一個功能,就可以讓使用者審核一個, 化整為零,讓Team Dev和客戶都能構掌握項目開發的進度. 同時大家通過這種方式,增強對項目按時完成的信心.以下資料主要是從haha blog中獲得的, 從網上找了很多類似的資料,只有這個我覺得是比較適合初學者//1 定義外掛程式介面,將其編譯成 dll,
Time of Update: 2018-12-05
■ 真的活用了核心嗎? 對於想確定是不是真正地活用了核心的人,準備了如下的驗證程式。這個程式為,把簡單迴圈所花費的時間分兩次進行計算。但是,第一次使用傳統方法,第二次使用並行方法。驗證程式 using System;using System.Threading.Tasks;class Program{ private const int count = 1000000000; private static void taro() { Console.WriteLine("Taro is
Time of Update: 2018-12-05
AspectSharp- Aspect# (pronunced as AspectSharp) is a free AOP ( Aspect OrientedProgramming ) framework for the .NET Framework, it uses Dynamic Proxiesand XML configuration files as basis.See all Open Source Aspect-Oriented Frameworks in C#Open
Time of Update: 2018-12-05
http://kenchell.blog.163.com/blog/static/260883092009716114946383/在C#3.0中,一個對象建立運算式可以包含一個對象或集合初始化器,用於初始化新建立的對象的成員或新建立的集合的元素。對象建立運算式:new type (argument-list(可選)) 對象或集合初試化器(可選)new type 對象或集合初試化器一個對象建立運算式可以省略構造器參數列表,並將其連同圓括弧一起替換為一個對象或集合初始化器。省略構造器參數列表並將其
Time of Update: 2018-12-05
Visual C# 資源檔編程--建立資源檔資源檔顧名思義就是存放資源的檔案。資源檔在程式設計中有著自身獨特的優勢,他獨立於來源程式,這樣資源檔就可以被多個程式使用。同時在程式設計的時候,有時出於安全或者其他方面因素的考慮,把重要東西存放在資源檔中,也可以達到保密、安全的效果。那麼VisualC#所使用的資源檔中到底存放哪些東西呢?在用VisualC#建立資源檔大致可以存放三種類型的資料資源,分別是位元組數組、各種對象和字串。本文將結合一個程式例子來具體說明用VisualC#是如何建立資源檔的。
Time of Update: 2018-12-05
現在有好些splash的做法,我的比較簡單,而且如果你的素材不錯的話,應該可以做出很好的效果,這個教程不依賴任何第三方控制項,直接使用vs的就行了,下面這個是預覽圖:本文開始:我們首先建立一個winform項目,那個form1.cs就先不動他,我們先再建立一個windows視窗,命名為splash,設定表單內容如下:ShowInTaskbar=false:因為是splash視窗,所以不用在工作列顯示了。然後拖動一個progressbar
Time of Update: 2018-12-05
迄今為止,使用多核心的多核電腦還並沒有得到廣泛的應用。儘管在高端領域,高端伺服器的世界裡,應用著很多多核電腦系統,但在廣大的低端世界裡,還是使用著單核或雙核。但是另一方面,在膝上型電腦的世界裡,也出現了多核筆記本。“儘管多核時代還只是對未來的預測,但不再是空想了。已經一點點地逐步靠近我們這個世界了”。當然,還有很多單核,單一處理器的電腦被利用著,但這並不單純是C#等開發語言的應用環境。今天,主CPU的核心數量的增加趨勢越來越明顯,所以我們已經可以預見廣大使用者使用多核電腦時代的即將到來,同時以
Time of Update: 2018-12-05
http://kenchell.blog.163.com/blog/static/26088309200971611491146/當我們需要對已有類的功能進行擴充時,我們通常會想到繼承,繼承已有類,然後為其加入新的行為。而C# 3.0中加入的擴充方法(Extension
Time of Update: 2018-12-05
兩個問題是:◆寫程式時少了智能感知;◆運行程式時速度變慢(反射)。今天看完New features in CSharp 4.docx才恍然明白,趁著沒事,把東西整理一下,希望能對暫時還不明白dynamic有什麼用的朋友提供一些參考。當然,由於本人才疏學淺,不保證所有的觀點都是正確的,希望大家用辯證的眼光來看這篇文章,如有錯誤之處,請大夥批評指正。言歸正傳,dynamic關鍵字用於聲明一個動態對象,然後通過該動態對象去調用方法或讀寫屬性。在使用C#
Time of Update: 2018-12-05
■ Task類的基本使用方法Task類為把線程類進行改良,使之更簡便,使用起來更加容易的類。因此,雖然功能相似,但屬於兩個概念,使用方法也不相同。要想利用Task類,開始任務,只要調用Task.Factory.StartNew方法就可以了。 task1.cs using System;using System.Threading.Tasks;class Program{ static void Main(string[] args) { // 子任務 var task =
Time of Update: 2018-12-05
■ dynamic類型 C#從1.0版開始,就可以即使不知道一個對象的類型,在編譯時間也可以動態訪問這個對象的資訊。只要使用反射就可以了。使用反射訪問對象的成員資訊 class A{ public readonly string MyName = "陸淩牛"; public static object GetObjectA() { return new A(); }}class Program{ static void Main(string[] args) { object a =
Time of Update: 2018-12-05
20.1 隱式類型在C#3.0中增加了一個變數聲明var,這個聲明和JavaScript 的var類似,但也有不同。相同之處是它可以用var來聲明任何類型的局部變數;而不同之處在於它僅僅負責告訴編譯器,該變數需要根據初始設定式來推斷變數的類型,而且只能是局部變數。20.1.1 隱式類型局部變數的聲明與使用在C#
Time of Update: 2018-12-05
這裡有一張單色(2值)的PNG的圖片(1024*1024)。因為是單色,所以只有黑跟白兩個值(實際上使用了只有黑跟白兩色的8位PNG格式的圖片檔案)。到底,哪些像素是黑色的,我們編寫一個程式來查點一下。同時用它來進行單任務和2~4任務分別進行查點時效能的比較。比較單任務與多任務 using System;using System.Collections.Generic;using System.Drawing;using System.Linq;using System.Threading.
Time of Update: 2018-12-05
上面我們向讀者講解了隱式類型,接下來我們繼續來討論C#3.0另一個新特性:匿名型別。20.2.1 引入匿名型別在很多情況下,我們需要一種能夠臨時將一批具有一定關聯的資料存放起來的對象;或者在某些情況下,我們對僅一個對象的“形狀”(如屬性的名字和類型等)比較感興趣。例如Book類,當它和其他商品放在一起進行查詢時,我們可能僅對其名稱和價格感興趣,並且希望將這兩種屬性放在另外一個單獨的臨時對象中以備今後使用。這時,我們關注的僅僅是這個臨時對象具有Name和Price的屬性感興趣,至於它究竟是什麼類型
Time of Update: 2018-12-05
C# 3.0新功能• 隱式類型的本地變數和數組• 物件初始設定式• 集合初始設定式• 自動實作屬性• 匿名型別• 擴充方法• 分部方法定義• Lambda 運算式隱式類型的數組var a = new[] { 1, 10, 100, 1000 }; // int[]var b = new[] { "hello", null, " world" }; string[] 型的數組使用方括弧var c = new[]{new[]{1,2,3,4},new[]{5,6,7,8}};var d = new[
Time of Update: 2018-12-05
在C#中實作類別似位域的操作http://www.cnblogs.com/TianFang/archive/2011/01/23/1942446.html這篇文章和前面的那篇在C#中實現BigEndian的數字一樣,都是在解析網路通訊協定和檔案時遇到的。有時協議會規定把一個byte的數字分成幾個部分,某一部分表示一個數字。這種情況下在C中可以用位域很簡單的實現,但是,在C#中就沒那麼容易了。這裡是我寫的一個類,專門用來輔助實現這種操作。 /// <summary> //
Time of Update: 2018-12-05
■ Task類相關的時間點Task類可以被用來執行多個處理。這個時候,想知道的時間點一般有兩個。一個是單獨一個任務結束的時刻。還有一個是全部任務結束的時刻。這兩個時間點可以很容易地被確定。 Task.WaitAny方法與Task.WaitAll方法的參數是一個或多個Task對象。這兩個方法的功能分別為返回單個任務結束的時刻與返回所有任務結束的時刻。使用這兩個方法,可以很簡單的書寫代碼來建立多個任務並等待它們結束的時刻。task3.cs using System;using