Time of Update: 2018-12-03
C#裡兩個時間相減,得到一個 TimeSpan 執行個體,TimeSpan 有一些屬性:Days、TotalDays、Hours、TotalHours、Minutes、TotalMinutes、Seconds、TotalSeconds、Ticks,注意沒有 TotalTicks。這些屬性名稱開始理解有些困難,但閱讀本文後,相應您一定茅塞頓開。舉例說明時間 1 是 2010-1-2 8:43:35;時間 2 是 2010-1-12 8:43:34。用時間 2 減時間 1,得到一個
Time of Update: 2018-12-03
很多人是從C轉到JAVA上來的,這裡給大家介紹一下C與JAVA的區別:1. Java沒有預先處理指令。(如C中的#define , #include , #ifdef等)。C中的常量定義在Java中用static final來取代。2. Java中沒有C中的全域變數。3. Java中的主類型的size是確定的,而C中主類型的size跟平台相關。4. Java中沒有了指標,它使用了類似的控制代碼來取代指標,但是Java中不允許對控制代碼進行加減,沒有取地址操作符之類的東東。5.
Time of Update: 2018-12-03
今天開始考慮AOP的C#實現,對於靜態Weavor方法迷惑中。在原始碼層級的編織是採用像AspectJ那樣做呢,還是另闢蹊徑?一開始就要讓我頭痛了。AspectJ的方式是:對原始碼進行解析,然後在加入點(JoinPoint)插入Aspcet的代碼,形成中間檔案,再編譯成最終檔案。這種方法產生的效能比較好,有一個缺陷就是如果修改了weaving的規則,就要重新編譯。(或許可以採用某些設計模式來消除這個弱點)另外一種思路就是一開始就採用設計模式,在JontPoint處插入delegate,以後如果需
Time of Update: 2018-12-03
今天開始寫Paser了,不過是從SharpDevelop借過來而已(不想重新發明輪子,^_^)。但是,還是對原先的代碼作了一些修改,即使到了RC2了,SharpDevelop的代碼中還是存在問題。今天看代碼是就發現了兩處。比如下面的代碼: static public int Compare(IList a, IList b, IComparer comparer) { if (a == null || b == null) { return 1; }
Time of Update: 2018-12-03
Iterator:列舉程式如果你正在建立一個表現和行為都類似於集合的類,允許類的使用者使用foreach語句對集合中的成員進行枚舉將會是很方便的。這在C#2.0中比 C# 1.1更容易實現一些。作為示範,我們先在 C# 1.1中為一個簡單的集合添加枚舉,然後我們修改這個範例,使用新的C#2.0枚舉構建方法。我們將以建立一個簡單化的List Box作為開始,它將包含一個8字串的數組和一個整型,這個整型用於記錄數組中已經添加了多少字串。建構函式將對數組進行初始化並使用傳遞進來的參數填充它。Code
Time of Update: 2018-12-03
C#語言一個最令人感興趣的地方就是類的索引器(indexer)。簡單說來,所謂索引器就是一類特殊的屬性,通過它們你就可以像引用數組一樣引用自己的類。顯然,這一功能在建立集合類的場合特別有用,而在其他某些情況下,比如處理大型檔案或者抽象某些有限資源等,能讓類具有類似數組的行為當然也是非常有用的。本文就會引領你設定類來採用索引器。但是,首先讓我們概述下屬性這個概念以便瞭解些必要的背景知識。 屬性
Time of Update: 2018-12-03
///<summary> /// 驗證是否已經運行 /// </summary> public static bool AppRunAlready(string appName) { Process[] app=Process.GetProcessesByName(appName); return app.Length>1; } /// <summary> /// 應用程式的主進入點。 /// </
Time of Update: 2018-12-03
C#語言一個最令人感興趣的地方就是類的索引器(indexer)。簡單說來,所謂索引器就是一類特殊的屬性,通過它們你就可以像引用數組一樣引用自己的類。顯然,這一功能在建立集合類的場合特別有用,而在其他某些情況下,比如處理大型檔案或者抽象某些有限資源等,能讓類具有類似數組的行為當然也是非常有用的。本文就會引領你設定類來採用索引器。但是,首先讓我們概述下屬性這個概念以便瞭解些必要的背景知識。 屬性
Time of Update: 2018-12-03
簡單說來,所謂索引器就是一類特殊的屬性,通過它們你就可以像引用數組一樣引用自己的類。 聲明方法如下(與屬性相似): //修飾符 類型名稱 this [類型名稱 參數名] public type this [int index] { get { //... }
Time of Update: 2018-12-03
在GetProcessPID()方法中,修改進程名,就可以實現關閉表單功能。本程式經過.Net 4.0調試通過,作業系統平台Windows Server 2008 R2 public partial class Form2 : Form { public Form2() { InitializeComponent(); } // 擷取視窗標題 [DllImport("user32",
Time of Update: 2018-12-03
一、建立一個事件驅動的程式需要下面的步驟: 1. 聲明關於事件的委託; (1)public delegate void EventHandler(object source, EventArgs e); (2)這裡的EventArgs參數是用來進行事件參數傳遞的,如果在使用自訂事件的時候不需要傳遞參數直接使用EventArgs即可;如果需要傳遞任何參數,需要定義一個繼承自EventArgs的類,比如:MyEventArgs。在這個類中定義其屬性即可,比如:private
Time of Update: 2018-12-03
委託1.概念:委託是函數的封裝,它代表一“類”函數。它們都符合一定的簽名:擁有相同的參數列表、傳回值類型。同時,委託也可以看成是對函數的抽象,是函數的“類”。2.文法:<modifiers> delegate <return_type> <delegate_name> ( argument_list )3.用法: (1.聲明委託,比如:public delegate void Del(string
Time of Update: 2018-12-03
.net 架構程式可以通過靜態 DLL 進入點的方式來訪問機器碼庫。DllImport 屬性用於指定包含外部方法的實現的dll 位置。 DllImport 屬性定義如下: namespace System.Runtime.InteropServices { [AttributeUsage(AttributeTargets.Method)] public class DllImportAttribute: System.Attribute { public
Time of Update: 2018-12-03
1. Timer類的作用是設定一個定時器,定時執行使用者指定的函數,而這個函數的傳遞是靠另外一個代理對象TimerCallback,它必須在建立Timer對象時就指定,並且不能更改。定時器啟動後,系統將自動建立一個新的線程,並且在這個線程裡執行使用者指定的函數。2. Timer timer = new Timer(timerDelegate, s,1000, 1000);
Time of Update: 2018-12-03
using System;using System.Diagnostics;namespace ZZ{ class ZZConsole { [STAThread] static void Main(string[] args) { string ip = "192.192.132.229"; string strRst = CmdPing(ip);
Time of Update: 2018-12-03
source:
Time of Update: 2018-12-03
1. 應用程式中的線程把大部分的時間花費在等待狀態,等待某個事件發生,然後才能給予響應,這種情況下需要使用ThreadPool。2.
Time of Update: 2018-12-03
http://blog.163.com/chen_dawn/blog/static/1125063201011203536852/1. atoiint atoi ( const char * str );Convert string to integerParses the C string str interpreting its content as an integral number, which is returned as anint value./* atoi example */
Time of Update: 2018-12-03
from: http://baike.so.com/doc/1529694.html由於linux下側重使用命令,沒有win的操作容易上手,所以在測試C操作SQLITE時會比較容易出現錯誤,給大家做一個簡單的程式進行測試,示範怎麼應用。開啟vi編輯器,輸入如下代碼: /*c代碼*/ #include <stdio.h> #include <sqlite3.h> int main( void ) { sqlite3 *db=NULL; char
Time of Update: 2018-12-03
#include<stdio.h>struct stu{char name[10];intnum;int age;char addr[15];}boya[2],boyb[2],*pp,*qq;#define FILEPATH "D:\\test.txt"void main(){FILE *fp;char ch;int i;pp = boya;qq = boyb;if((fp = fopen(FILEPATH,"wb+")) == NULL){printf("Cannot open