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
#include<stdio.h> /*定義函數指標類型*/ typedef void (*func_t)(int); void show(int); int main(int argc, char *argv[]) { /*NULL 的指標地址*/ int * a=100; void * p=NULL; printf("NULL=%p\n",p);
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
先說一下“即興編程”,在網上搜尋了一下,還真有人用過這個詞,不知道他的意思是不是和我想表達的一樣;說一下我的意思吧,要完成一個“功能”或是一個“小程式”時,先把要寫的功能的思路“縷”一下(地方音,意思為“梳理”。),然後,就動手開寫,寫的過程中不能間斷,思維高度集中,按照“既定”的思路一直寫下去,直至功能完成,然後,編譯、運行。
Time of Update: 2018-12-08
Finalize 和Dispose(bool disposing)和 Dispose() 的相同點: 這三者都是為了釋放非託管資源服務的.Finalize 和 Dispose() 和Dispose(bool disposing)的不同點: Finalize是CRL提供的一個機制, 它保證如果一個類實現了Finalize方法,那麼當該類對象被記憶體回收時,記憶體回收行程會調用Finalize方法.而該類的開發人員就必須在Finalize方法中處理 非託管資源的釋放.
Time of Update: 2018-12-08
最近在搞一個C++項目的封裝工作,原項目是個native c++的項目(還是個從linux下移過來的),封裝的目地是打算在.net下(或者說是在C#中)使用這些C++的類和它們的方法。 封裝工作的第一步,先找出原C++項目中的public class和public method. 其實它們大多被定義.h檔案中,所以把標頭檔拷貝過來是個不錯的辦法。然後在class前上ref 把它變成managed class. 模板如下:代碼Code highlighting produced by
Time of Update: 2018-12-08
今天看到這篇文章一個在C#以及類似的物件導向系統(Java中估計也是如此)中常見的錯誤,感觸頗多,說句實在話,國內目前的OO語言教學中忽略了一個關鍵的一環“OO的物件模型”,這裡有本好書:侯捷的《深度探索C++物件模型》。看過的與沒有看過的,對理解OO的物件模型有層次的不同。看過的人往往會思考:“編譯器到底做了什麼”?沒看過的會想當然:“應該是這樣的,就是這樣的......”。比如把一個子類對象強制轉換為基類對象,其實編譯器處理就是把該對象作為基類對象來處理(即對象的Slip)。當然調用的方法(
Time of Update: 2018-12-08
在C# 2.0的語言規範中, 有一段對"文法多義性"的說明。看後寫了個例子編譯了一下,代碼如下:Code highlighting produced by Actipro CodeHighlighter
Time of Update: 2018-12-08
最近研究演算法,把常用的演算法用C#實現了。整理了一下列在這裡,以備尋找。排序演算法交換排序冒泡排序快速排序奇偶排序雞尾酒排序Gnome SortComb Sort插入排序 插入排序 希爾排序選擇排序 選擇排序 堆排序合并排序 合并排序
Time of Update: 2018-12-08
在mojo的源裡邊有編譯好的mono安裝包,但由於SmartQ的核心中Thumb設定不支援,昨天終於把核心重新編譯出來,這樣直接從源裡安裝mono就好用了,Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->sudo apt-get install libmono-dev libmono-winforms2.0-cil libmono2.0-cil
Time of Update: 2018-12-08
剛了C# 2.0 的迭代器感覺不錯,簡潔明了。在迭代器塊中用於向枚舉數對象提供值或發出迭代結束訊號。它的形式為下列之一:yield return expression;yield break;在下面的樣本中,迭代器塊(這裡是方法 Power(int number, int power))中使用了 yield 語句。當調用 Power 方法時,它返回一個包含數字冪的可枚舉對象。注意 Power 方法的傳回型別是 IEnumerable(一種迭代器介面類型)。Code highlighting
Time of Update: 2018-12-08
分別用c, cs 和 vala 完成同樣的運算:CodeCode highlighting produced by Actipro CodeHighlighter
Time of Update: 2018-12-08
組合語言有效能優勢,C#有靈活性,組織圖優勢。兩者結合使用是我的理想。想法是大的組件和類層次使用C#;關鍵子程式使用彙編DLL。可以從網上下載MASM32工具包。版本可以是8.2或者9.0。我用彙編寫了一個DLL。功能是求和整數數組。.386.model flat, stdcalloption casemap:noneinclude \masm32\include\windows.incinclude \masm32\include\kernel32.incinclude
Time of Update: 2018-12-08
大家先來看看如下三個迴圈: int[] foo = new int[100]; 1, foreach (int i in foo) Console.WriteLine(i.ToString()); 2,for(int index=0;index<foo.Length;index++) Console.WriteLine(foo[index].ToString());
Time of Update: 2018-12-08
很久之前整理了一篇《C# 調用非託管程式》文章,在部落格園zhongzf同學《在.net程式中嵌入asm彙編代碼》進行了簡單的討論,現在才有時間整理。《C# 調用非託管程式》最後一種方法通俗的講是構造符合彙編代碼(機器代碼)格式的資料,把該資料當作可執行代碼執行。Windows提供了DEP(Data Execution Prevention 資料執行防止)機制,也就是Windows會試圖阻止程式運行非可執行記憶體地區的可執行代碼。如果開啟DEP,《C#
Time of Update: 2018-12-08
昨天有個哥們:寫了這麼篇文章:星期六不談技術->>走出程式員的悲哀。 拋開這些不談,誰能給編譯型和解釋型給下個定義。無一例外,要麼就是某人的部落格,要麼就是搜尋來的網頁,再要麼就是放個闕詞就消失,這些作為論據充分不?昨天翻了翻龍書,也沒有給這兩個概念下詳細的定義,可見兩個概念是很難下個精確的定義的。在<<Programming Language Pragmatics>>(by Michaei L.