Time of Update: 2018-12-06
1 建立windows 服務項目2 注意載入timer的時候需要載入System.Timers.Timer this.timer1 = new System.Timers.Timer(); ((System.ComponentModel.ISupportInitialize)(this.timer1)).BeginInit(); // // timer1 // this.timer1.Interval = 5000;
Time of Update: 2018-12-06
簡單項目中可使用ini做為設定檔,操作類如下。 1 public class INIClass 2 { 3 public string inipath; 4 [System.Runtime.InteropServices.DllImport("kernel32")] 5 private static extern long WritePrivateProfileString(string section, string key,
Time of Update: 2018-12-06
1 判斷檔案夾是否存在 1 /// <summary>檔案夾是否存在 2 /// </summary> 3 /// <param name="dir"></param> 4 /// <returns></returns> 5 public static Boolean isFolderExist(string dir) 6 { 7 if
Time of Update: 2018-12-06
下載下面的base64.zip然後皆壓縮放到你的項目裡面。然後我們自己寫一個方法去調用即可,很簡單,我自己封裝了一個類去做,這樣對我來說,庫裡的函數就比較透明了,當然也不是必須的。在我當前機器上可以使用,如果有問題請聯絡我。 // .h檔案,預設即可 #import < Foundation / Foundation.h >@interface Utility : NSObject {}+ (NSString * )encodeBase64:(NSString * )input;+
Time of Update: 2018-12-06
實現使用者及使用者組使用權限設定,一個組內的使用者權限相同。 1//使用者和組的父介面 2public interface userbase 3{ 4 void AddChild(userbase u); //添加使用者或組 5 void SetPurview(string purview);//設定許可權 6} 7//使用者 8public class user : userbase 9{10 private string purview = "";1112 publi
Time of Update: 2018-12-06
這裡說的繼承有點像C++裡的父類和子類,實際上是結構體類型的強制轉換,最近看Linux核心源碼時經常接觸到這種方法,在這裡就當作是一個簡單的學習吧。 下面給出一個Demo,很簡單,分別定義了一個father結構體和一個son結構體,father結構體裡定義了2個整形變數,son結構體裡的第一個成員是father結構體類型的變數,son裡的另外2個成員也是整形變數,這樣,son結構體就好像繼承了father結構體,並增加了2個成員,代碼如下: 1 #include <
Time of Update: 2018-12-06
物件導向語言C++的基本特徵是封裝、繼承、多態,其實這些用C語言同樣可以實現。封裝可以用結構體來實現,繼承可以用包含來實現,這些都好說,下面我用代碼重點說一下如何用C語言實現C++的多態。 using namespace std;typedef struct Animal{ void (*show) ();}CAnimal;void showpig(){ cout<<__FUNCTION__<<endl;}void
Time of Update: 2018-12-06
函數的本質是一段二進位代碼,這些代碼是可以直接被機器執行的指令。在翻譯為組合語言時,函數被翻譯成一段相對獨立的代碼,並且使用函數名作為編號,表示此段代碼的入口。當程式調用該函數時,只需要轉到該入口就可以了。因此函數名的值等於記憶體中儲存該程式碼片段的首地址
Time of Update: 2018-12-06
多態性給我們帶來了好處:多態使得我們可以通過基類的引用或指標來指明一個對象(包含其衍生類別的對象),當調用函數時可以自動判斷調用的是哪個對象的函數。一個函數說明為虛函數,表明在繼承的類中重載這個函數時,當調用這個函數時應當查看以確定調用哪個對象的這個函數。普通函數的處理:一個特定的函數都會映射到特定的代碼,無論時編譯階段還是串連階段,編譯器都能計算出這個函數的地址,調用即可。虛函數的處理:被調用的函數不僅依據調用的特定函數,還依據調用的對象的種類。通常是由虛函數表(vtable)來實現的。虛函數
Time of Update: 2018-12-06
1,函數模板 函數模板即允許多個函數定義簡化成用統一的函數定義形式來描述。實際上,函數模板表示了一組同名函數,這些同名函數之間,都是重載函數。 函數模板定義的一般形式是: template <模板參數表> 函數類型標誌符
Time of Update: 2018-12-06
寫在前面: 以下內容是我的愚見,如有不對,歡迎拍磚。 無符號數:不存在正負之分,所有位都用來表示數的本身。有符號數:最高位用來表示數的正負,最高位為1則表示負數,最高位為0則表示正數。 1.無符號數--->有符號數 看無符號數的最高位是否為1,如果不為1(為0),則有符號數就直接等於無符號數;如果無符號數的最高位為1,則將無符號數取補碼,得到的數就是有符號數。以unsigned char 和char為例子:1.1將無符號數2轉為有符號數2的原碼是:0000 0010,
Time of Update: 2018-12-06
MailMessage mail = new MailMessage(); mail.To = "me@163.com"; mail.From = "you@163.com"; mail.Subject = "this is a test email."; mail.Body = "Some text goes here"; mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"
Time of Update: 2018-12-06
Prefer consts,enums,and inlines to #defines.我們學習C語言的時候,經常會用到前置處理器語句,比如#define,#include,#ifdef,#endif.預先處理語句是無法被編譯器看見的,所以無法得到有效錯誤提示.比如說: #define ASPECT_RATIO 1.653記號名稱ASPECT_RATIO有可能沒有進入記號表(symbol
Time of Update: 2018-12-06
1.將某些東西聲明為const可協助編譯器偵測出錯誤用法.const可被施加於任何範圍的對象,函數參數,函數傳回型別,成員函數本體.2.編譯器強制實施bitwise constness,但你編寫程式時應該使用"概念上的常量性"(conceptual constness);3.當const和non-const成員函數有著實質等價的實現時,令non-const版本調用const版本可避免代碼重複.
Time of Update: 2018-12-06
項目中要使用到初始化資料庫,需要用程式調用記錄下,2段代碼一段是調用方法一段是sql.sql檔案:private void SETUP() { DialogResult result; result = MessageBox.Show("安裝新資料庫將刪除原有資料庫,是否繼續安裝!", "警告", MessageBoxButtons.YesNo); if (result == DialogResult.Yes)
Time of Update: 2018-12-06
1:在.NET中,當你定義一個字串時,通常的情況是系統為你在棧中分配一個變數,這個變數中有一個地址,這個地址指向堆中一塊地區,在這兒,放著你定義的那個字串,當你將這個字串變數賦一個新值的時候,存放以前字串的記憶體塊並不發生變化,系統會新分配一塊記憶體,放入你指定的新值,然後將這個新地址放在以前在棧中的那個變數,也就是那個引用型的字串類的對象中。 那麼舊的那塊記憶體地區呢?就會保留在那兒,但你再也無法使用它,直到某個特定時刻,它會被GC標記為可用,完成回收。 2:另外要注意,在.NET中,
Time of Update: 2018-12-06
今天在一個C#練習100例中看到這麼一段代碼: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->1 float f_a = 2323.03f;2 double d_a = 2323.03d;3 bool b_a = (f_a == d_a);4
Time of Update: 2018-12-06
今晚先是用C#寫了一個控制台程式:遞迴求階乘,又寫了個冒泡排序,準備接著寫WIN FORMS的漢諾塔示範程式,先是大致瞭解了一下漢諾塔的演算法,貌似時間已經快1 點了,就先睡覺,因為明天要早起去送人,所以明天再做這個練習!位置先留著。 這次我打算是用System.Drawing中的功能來完成層的移動動畫。大概會是這個樣子可能: 因為這幾個底盤還有柱子都是用BUTTON控制項畫的,所以看起來醜得要命,呵呵,不過先這個樣子放一放,明天再想辦法。
Time of Update: 2018-12-06
我們為什麼需要索引器(indexer)這種玩意兒? 當我們要定義一個自訂的集合類型時,比如EmployeeCollection , ManagerCollection .因為功能的需要,我們在這樣的類中,我們使用了泛型的集合類做儲存,還需要在類中封裝一些其它的必要的相關方法,比如計算工資的方法呀,查看員工有多少個WORKING
Time of Update: 2018-12-06
有時候,我們需要封裝一組資料,只有資料,沒有方法,並且只用於當前程式,不需要在項目間重用,這時候,如果是傳統的使用類來封裝的話,大概會是下面這種樣子: internal class SomeData{ //定義一系列私人成員變數 //建立屬性來封裝每一個資料成員 //重寫方法的ToString()來輸出每一個資料成員 //重寫GetHashCode()