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
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
http://kenchell.blog.163.com/blog/static/26088309200971611491146/當我們需要對已有類的功能進行擴充時,我們通常會想到繼承,繼承已有類,然後為其加入新的行為。而C# 3.0中加入的擴充方法(Extension
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
20.1 隱式類型在C#3.0中增加了一個變數聲明var,這個聲明和JavaScript 的var類似,但也有不同。相同之處是它可以用var來聲明任何類型的局部變數;而不同之處在於它僅僅負責告訴編譯器,該變數需要根據初始設定式來推斷變數的類型,而且只能是局部變數。20.1.1 隱式類型局部變數的聲明與使用在C#
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
今天來的時候開啟了MSDN掃了一眼C#裡的枚舉類型~~ 驀然發現這東西還有些新玩法。http://msdn.microsoft.com/zh-cn/library/sbbt4032.aspx#Y791首先是簡單介紹,……在此略過。因為enum用法很簡單麼~定義一個簡單的枚舉類型: enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri}; //這時候 Days.Sat = 0 ,後面依此遞增。當然也可以手動指定起始值:
Time of Update: 2018-12-05
ManualResetEvent是C#中一個比較常用的工具,可用於線程間通訊,實現一種類似訊號量的功能(不知道我這樣描述是否恰當,有可能不是“類似”,而“就是”通過訊號量來實現的,因為我也是最近才知道這個類,以前一直不知道,哈哈。如果有哪位清楚的話,請給我解惑。)。先瞭解一下ManualResetEvent的基本用法:1、初始化:public ManualResetEvent(bool initialState); ManualResetEvent的構造方法有個bool型參數,當為true時,
Time of Update: 2018-12-05
原文在http://lwchome.spaces.live.com/blog/cns%21791B533443007D37%21234.entry 步驟1: 建立一個新的“windows表單控制項陳列庫”項目2: 在AssemblyInfo.cs中引用System.Security命名空間,並添加一句:[assembly : AllowPartiallyTrustedCallers()] 3:
Time of Update: 2018-12-05
我們在編寫程式時,經常遇到兩個模組的功能非常相似,只是一個是處理int資料,另一個是處理string資料,或者其他自訂的資料類型,但我們沒有辦法,只能分別寫多個方法處理每個資料類型,因為方法的參數類型不同。有沒有一種辦法,在方法中傳入通用的資料類型,這樣不就可以合并代碼了嗎?泛型的出現就是專門解決這個問題的。讀完本篇文章,你會對泛型有更深的瞭解。 為什麼要使用泛型為了瞭解這個問題,我們先看下面的代碼,代碼省略了一些內容,但功能是實現一個棧,這個棧只能處理int資料類型:public class
Time of Update: 2018-12-05
在.Net世界裡,用得最多的方法之一就是System.Object.ToStrying()了。你應該為你所有的客戶寫一個“通情達理”的類(譯註:這裡是指這個類應該對方便使用)。要麼,你就迫使所用類的使用者,去使用類的屬性並添加一些合理的易讀的說明。這個以字串形式存在,關於你設計的類的說明,可以很容易的向你的使用者顯示一些關於對象的資訊到:Windows Form裡,Web Form裡,控制台輸出。這些字元說明可以用於調試。你寫的任何一種類型,都應該合理的重寫這個方法。當你設計更多的複雜的類型時,
Time of Update: 2018-12-05
對於常量,C#裡有兩個不同的版本:運行時常量和編譯時間常量。 因為他們有不同的表現行為,所以當你使用不當時,將會損傷程式效能或者出現錯誤。 兩害相權取其輕,當我們不得不選擇一個的時候,我們寧可選擇一個運行慢一點但正確的那一個,而不是運行快一點但有錯誤的那個。基於這個理由,你應該選擇運行時常量而不是編譯時間常量(譯註:這裡隱藏的說明了編譯時間常量效率更高,但可能會有錯誤)。
Time of Update: 2018-12-05
using System;using System.Collections.Generic;using System.Data;using System.Linq;using System.Text;using System.Reflection;namespace ConsoleApplication6{ /// <summary> /// AttributeTargets.Class可以對類應用屬性 /// Inherited能否由衍生類別或重寫成員繼承
Time of Update: 2018-12-05
視頻示範:http://u.115.com/file/f2f879dd4b本演練提供了通過僅執行預存程序來訪問資料的LINQ to SQL基本端對端方案。 資料庫管理員經常使用此方法來限制資料存放區的訪問方式。 出於本演練的需要,您將用到已映射到 Northwind 樣本資料庫中預存程序的兩個方法:CustOrdersDetail 和 CustOrderHist。 此映射發生在運行 SqlMetal 命令列工具來產生 C#
Time of Update: 2018-12-05
視頻示範:http://u.115.com/file/f2e6d30b81Language-integrated Query (LINQ) (LINQ) 不僅可用於檢索資料,而且還是一個功能強大的資料轉換工具。通過使用 LINQ 查詢,您可以將源序列用作輸入,並採用多種方式修改它以建立新輸出序列。您可以通過排序和分組來修改序列本身,而不必修改元素本身。 但是,LINQ 查詢最強大的功能可能在於它能夠建立新類型。這一功能在 select
Time of Update: 2018-12-05
string str_oleConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\;Extended Properties=dBASE IV;"; System.Data.OleDb.OleDbConnection ole_conn = new System.Data.OleDb.OleDbConnection(str_oleConn); try {
Time of Update: 2018-12-05
//第一次把apue的課後習題做出來了,以作紀念。 PS:這個程式的已耗用時間比figure4.22的已耗用時間多,大概是由於切換當前工作目錄引起的吧#include "apue.h"#include <dirent.h>#include <limits.h> //line9-54 is copied from figure2.15#ifdef PATH_MAXstatic int pathmax = PATH_MAX;#elsestatic int
Time of Update: 2018-12-05
'Restrict' Pointers One of the new features in the recently approved C standard C99, is the restrict pointer qualifier. This qualifier can be applied to a data pointer to indicate that, during the scope of that pointer declaration, all data accessed