Time of Update: 2018-12-08
指標可以說是C和C++ 中特有的,出於安全性的考慮,微軟出的C# 中取消了指標的運用,但是,在C#中仍有關鍵字 unsafe 關鍵字裡 可以編寫C++ 代碼。因為 unsafe 是要以時間和空間消耗為代價的。 所以不經常使用,其主要用途是在處理大量的數組的時候,有大量的地址在變化的時候用 unsafe 關鍵字就有可能贏得更大的效力。 前不久, 在和朋友討論一個問題,問題的描述如下代碼所示:CodeCode highlighting produced by Actipro
Time of Update: 2018-12-08
最近偶簡單的複習了下在C#中涉及到繼承這個特性時,所需要用到的關鍵字,其中有一些關鍵點,特地整理出來,方便大家查閱。在微軟的一次筆試和面試中也提到了這個問題:一、在C#中,new這個關鍵字使用頻率非常高,主要有3個功能: a) 作為運算子用來建立一個對象和調用建構函式。 b) 作為修飾符。 c) 用於在泛型聲明中約束可能用作型別參數的參數的類型。
Time of Update: 2018-12-08
泛型是 C#2.0 語言和公用語言運行庫 (CLR) 中的一個新功能。泛型將型別參數的概念引入 .NET Framework,型別參數使得設計如下類和方法成為可能:這些類和方法將一個或多個類型的指定延遲到用戶端代碼聲明並執行個體化該類或方法的時候。例如, 通過使用泛型型別參數 T,可以編寫其他用戶端代碼能夠使用的單個類,而不致引入運行時強制轉換或裝箱操作.使用泛型型別可以最大限度地重用代碼、保護類型的安全以及提高效能。泛型最常見的用途是建立集合類。 .NET Framework 類庫在
Time of Update: 2018-12-08
概述:最近在做Excel上二次開發,幫公司開發了一個外掛程式,用來產生報表用的。在這裡面查閱了很多資料,也學到了很多東西, 網上二次開發的資料也挺少的,一方面,豐富網路資源,另外,也方便自己查閱,拿出來和大家share 一下。歡迎指正。Email:tomin168@163.comMSN: brusetomin@hotmail.com Develepment Enviroment : net Framework 3.5 ,Excel 2007Language:C#基礎知識:1. Excel
Time of Update: 2018-12-08
最近,隨著System Center Virtual Machine Management 2012 SP1 的發布,越來越多的人,加入到私人雲端的開發中來,特別是,開發測試雲端,但國內的技術文檔及資料相當匱乏。前幾天,一個外地的同事在問 “怎麼用C# 調用PowerShell並且取得傳回值”的問題。解決方案如下:調用系統的PowerShell,可以用: /// <summary> /// invoke system powershell
Time of Update: 2018-12-08
C#中利用 IrisSkin2.dll 所提供的控制項 SkinEngine 來為表單添加皮膚。這種方法最簡單 具體步驟:.添加控制項SkinEngine。1.右鍵“工具箱”。“添加選項卡”,取名“皮膚”。2.右鍵“皮膚”,“選擇項”彈出對話方塊。3.點擊“瀏覽“,找到IrisSkin2.dll,這時你會發現 SkinEngine 的控制項已經被打上勾 - 確定。4.將 SkinEngine
Time of Update: 2018-12-08
在C#中提供了一維數組,多維陣列,和交錯數組(也叫齒狀數組Jagged Array),由於C#本身並不直接支援非0基(0基的意思是數組的最小索引是0)的數組(雖然可以通過Array.CreateInstance()方法在C#中建立非0基數組),而且CLS(通用語言規範)也並不支援非0基數組,所以這篇文章中不討論非0基數組。1,一維0基數組:
Time of Update: 2018-12-08
我們這裡要使用WinForm來實現一個類似系統的協助工具輔助裡的螢幕小鍵盤!大體思路是這樣的:按鍵可以使用SendKeys.Send()方法來類比,主要的痛點是輸入焦點的處理!預設情況下,如果你點擊螢幕小鍵盤上的按鈕,則你的表單會獲得輸入焦點,你要輸入文字的那個表單會失去輸入焦點,這樣也就沒有辦法輸入文字了!對於這個問題,我們可以通過重寫表單的CreateParams屬性,把表單的擴充樣式設定成WS_EX_NOACTIVATE,這樣按下表單上的按鈕的時候就不會獲得輸入焦點了,具體案例代碼如下:
Time of Update: 2018-12-08
大家都知道,一個類的私人成員只能在他的內部訪問!但是不知道大家注意到沒有,實際上在C#中一個類的執行個體是可以訪問同一個類的另外一個執行個體的私人成員的。請看這段簡單的代碼public class MyClass { private int i = 0; public void Function() { MyClass a = new MyClass();
Time of Update: 2018-12-08
C#編譯器是否會為實值型別產生預設的建構函式呢?答案是否定的,C#編譯器並不會為值產生預設的建構函式的,這樣設計一方面是基於效能方面的考慮,另外一個原因是實值型別可以被隱式的建立!這一點可以通過ILDasm工具開驗證,實值型別確實沒有產生預設的建構函式,看下面的代碼: class Program { static void Main(string[] args) { A a =new A();
Time of Update: 2018-12-08
問題起源於微軟官方論壇中的一個文章,他給出了一段VB.NET編寫的代碼: Dim stralltext As String = My.Computer.FileSystem.ReadAllText("c:\magic.txt") Dim StrLines() As String =
Time of Update: 2018-12-08
可能很多人都沒有注意到,C#中對byte類型的處理還是很特殊的。下面我用幾行簡單的代碼來說明問題byte x=1;byte y=2;byte z=x+y;
Time of Update: 2018-12-08
C# vs. Java:相反的思維方式作者:Malcolm Davis 發表於:September 12, 2004我最近受邀對 C#/.NET 和 Java/J2EE 做一個對比。一開始,我比較了它們的功能特性、產品、技術,然後我發現 C# 和 Java
Time of Update: 2018-12-08
為什麼引入Duck Typing? ADuck,BDuck,XDuck…………. 為linq
Time of Update: 2018-12-08
c 代碼:#include <stdio.h>#include <assert.h>#define MAXLEN 1000int getline(char[] ,int);//供C# 調用 __declspec__declspec(dllexport) void reverseline(char dest[],const char source[]);int main(int argc, char *argv[]){ char currentline[MAXLEN]
Time of Update: 2018-12-08
需求1. 雙擊表單,彈出無標題的messageBox源碼using System;using System.Windows.Forms; namespace ReflexilDemo{ public class DemoForm : Form { public DemoForm() { //InitializeComponent();
Time of Update: 2018-12-08
多檔案連結 檔案結構:
Time of Update: 2018-12-08
C# Struct 記憶體對齊結構體: struct MyStruct0 { public byte id; public int val; }輸出機構體的資訊:static void ShowStructInfo0() { unsafe { int size = sizeof(byte); Console.WriteLine("
Time of Update: 2018-12-08
匿名方法匿名方法與具名方法在本質上是相同的,使用匿名方法後編譯器在定義匿名方法的類的外部動態產生具名方法。 /// <summary> /// 定義委託 /// </summary> delegate void DoWorkDelegate();class Program { static void Main(string[] args) { //具名方法的委託
Time of Update: 2018-12-08
Finalize 和Dispose(bool disposing)和 Dispose() 的相同點: 這三者都是為了釋放非託管資源服務的.Finalize 和 Dispose() 和Dispose(bool disposing)的不同點: Finalize是CRL提供的一個機制, 它保證如果一個類實現了Finalize方法,那麼當該類對象被記憶體回收時,記憶體回收行程會調用Finalize方法.而該類的開發人員就必須在Finalize方法中處理 非託管資源的釋放.