Time of Update: 2018-12-08
首先看下面一端代碼:複製代碼 代碼如下: #include <iostream> void swap( int &a,int &b) { int temp; temp=a; a=b; b=temp; } int main(int argc,char** argv) { int a=1,b=2; swap(a,b);
Time of Update: 2018-12-08
然後是各個成員函數選項可以是virtual或non-virtual或pure virtual。本文僅僅作出一些關鍵點的驗證。 public繼承,例如下:複製代碼 代碼如下: class base {...} class derived:public base
Time of Update: 2018-12-08
可能不太熟悉,也有可能沒有去關心過。我們只關心程式能否正確運行,或者程式怎麼實現等等一些問題。 這裡筆者就為介紹下我們熟悉又不太熟悉的“#include”,首先我們瞭解下C/C++標頭檔。 標頭檔為相關聲明提供了一個集中存在的位置。標頭檔一般包含類的定義,extern變數聲明與函式宣告。注意這裡聲明與定義的區別:它們最本質的區別是定義只可以出現一次,聲明可以出現多次。聲明不分配空間,而定義是要分配空間的。標頭檔正確使用可以保證所有檔案使用給定實體的同一聲明;當聲明需要修改時,只有標頭檔需要更新。
Time of Update: 2018-12-08
下面詳細介紹 一、初始化與初始賦值 首先說說類的初始化與初始賦值之前的區別,這也許裡面可能有我們不知道的事情。 其實類初始化與初始賦值還是有區別的。 複製代碼 代碼如下:class People{ public: People(std::string name,int age,int height); private: std::string m_sName; int m_iAge; int m_iHeight; } //賦值 People::People(std::string
Time of Update: 2018-12-08
如果你覺得重新編譯檔案的時間很短或者時間長一點無所謂,反正需要重新編譯,那麼你也可以選擇略過此文,不過也建議瀏覽。如果你想學習或者關心這塊內容,那麼此文必定會給你帶來收穫。首先我不給出依存關係的定義,我給出一個例子。複製代碼 代碼如下: class Peopel{ public: People(const std::string & name,const Date& brithday,Image Img) std::string name( ) const;
Time of Update: 2018-12-08
1.盡量用類的非成員函數以及友元函數替換類的成員函數 例如一個類來類比人People 複製代碼 代碼如下:1 class People{ 2 public: 3 ... 4 void Getup( ); 5 void Washing( ); 6 void eating( ); 7 ... 8 } 其實上面三個動作是早上“起床”、“洗簌”、“吃飯”三個常見的動作,如果現在用一個函數來表示使用成員函數即為 複製代碼 代碼如下:1 class People 2 { 3 ... 4 void
Time of Update: 2018-12-08
我們在做web測試時,經常會使用WebBrowser來進行一些自動化的任務。而有些網頁上面會用IFrame去嵌套別的頁面,這些頁面可能不是在相同網域名稱下的,這時就會出現跨域問題,無法直接在WebBrowser中擷取到IFrame中的元素。下面來做個實驗,自己寫個頁面嵌套一個百度的首頁,然後在我們自己的頁面上輸入要查詢的詞,最後在百度上自動完成搜尋。 複製代碼 代碼如下:<!DOCTYPE html> <html lang="en"
Time of Update: 2018-12-08
例如:這裡程式檔案開頭有如下#define語句 複製代碼 代碼如下:#define N 10 #define PI 3.14 #define MAX 10000 #define Heigth 6.65 ... ...
Time of Update: 2018-12-08
複製代碼 代碼如下:// this.SizeChanged += new System.EventHandler(this.Form1_SizeChanged); //上面一行是主表單InitializeComponent()方法中需要添加的引用 private void Form1_SizeChanged(object sender, EventArgs e) { if (this.WindowState==FormWindowState.Minimized) { this.Hide();
Time of Update: 2018-12-08
什麼是遞迴函式/方法? 任何一個方法既可以調用其他方法也可以調用自己,而當這個方法調用自己時,我們就叫它遞迴函式或遞迴方法。 通常遞迴有兩個特點: 1. 遞迴方法一直會調用自己直到某些條件被滿足 2. 遞迴方法會有一些參數,而它會把一些新的參數值傳遞給自己。 那什麼是遞迴函式?函數和方法沒有本質區別,但函數僅在類的內部使用。以前C#中只有方法,從.NET 3.5開始才有了匿名函數。 所以,我們最好叫遞迴方法,而非遞迴函式,本文中將統一稱之為遞迴。
Time of Update: 2018-12-08
假如我們想要從一個整型數組中取出其中是奇數的選項,其實現方式有很多,我們通過下面三種實現方式來對對比理解Lambda運算式的用途 方法一:命名方法 複製代碼 代碼如下:public class Common { public delegate bool IntFilter(int i); public static List<int> FilterArrayOfInt(int[] ints, IntFilter filter) { var lstOddInt = new
Time of Update: 2018-12-08
本文主要記錄的是C#各種集合操作的效能,下面的標記說明描述標記的時間,下面的表格對比各種集合各種操作的時間. 標記說明: 1.O(1) 表示無論集合中有多少項,這個操作需要的時間都不變,例如,ArraryLIst的Add()方法就O(1), 無論集合中有多少元素,在列表尾部添加一個新的元素的時間都是相同的. 2. O(n)表示對於集合中的每個元素,需要增加的時間量都是相同的,如果需要重新給集合分
Time of Update: 2018-12-08
製作透明表單辦法有好幾種,各有優缺點. 我們先來看看C#本身提供的辦法 1:通過設定表單的 TransparencyKey實現 例:表單中的白色會變成透明 複製代碼 代碼如下:this.BackColor =Color.White; this.TransparencyKey = Color.White; 2:通過設定表單的 Opacity 實現 例:表單的透明度為50% 複製代碼 代碼如下:this.Opacity = 0.5; 為了更好說明問題,我們先看一個執行個體。
Time of Update: 2018-12-08
預存程序的調用在B/S系統中用的很多。傳統的調用方法不僅速度慢,而且代碼會隨著預存程序的增多不斷膨脹,難以維護。新的方法在一定程度上解決了這些問題。 在使用.NET的過程中,資料庫訪問是一個很重要的部分,特別是在B/S系統的構建過程中,資料庫操作幾乎成為了一個必不可少的操作。調用預存程序實現資料庫操作使很多程式員使用的方法,而且大多數的程式員都是能使用預存程序就使用預存程序,很少直接使用SQL語句,所以預存程序是很有用而且很重要的。 預存程序簡介
Time of Update: 2018-12-08
相關概念 定義:事件是用於通知其他對象發生了本對象發生了特定的事情的類型成員。 說明:事件是.NET類型成員中相對較為難以理解和實踐的一個成員,因為事件的定義不是繼承自基礎的資料類型,而是對委託(delegate)的封裝。所以,在瞭解事件之前,你需要先瞭解一點委託。 應用情境:事件的應用情境非常廣泛,其中最常見的情境是在各個前端控制項中的大量觸發事件設計。原因是因為
Time of Update: 2018-12-08
函數功能:該函數返回指定視窗的邊框矩形的尺寸。該尺寸以相對於螢幕座標左上方的螢幕座標給出。 函數原型:BOOL GetWindowRect(HWND hWnd,LPRECTlpRect); 參數: hWnd:視窗控制代碼。 lpRect:指向一個RECT結構的指標,該結構接收視窗的左上方和右下角的螢幕座標。 傳回值:如果函數成功,傳回值為非零:如果函數失敗,傳回值為零。若想獲得更多錯誤資訊,請調用GetLastError函數。 C#中使用該函數首先匯入命名空間: 複製代碼 代碼如下:using
Time of Update: 2018-12-08
函數功能:該函數把游標移到螢幕的指定位置。如果新位置不在由 ClipCursor函數設定的螢幕矩形地區之內,則系統自動調整座標,使得游標在矩形之內。 函數原型:BOOL SetCursorPOS(int X,int Y); 參數: X:指定游標的新的X座標,以螢幕座標表示。 Y:指定游標的新的Y座標,以螢幕座標表示。 傳回值:如果成功,返回非零值;如果失敗,傳回值是零,若想獲得更多錯誤資訊,請調用GetLastError函數。
Time of Update: 2018-12-08
C#中判斷兩個對象是否相等有Equals、RefrenceEquals和==三種,其中==為運算子,其它兩個為方法,而Equals又有兩種版本,一個是靜態,一個是虛擬,虛擬可以被實體類重寫,靜態在方法體內也是調用虛擬,如下: 複製代碼 代碼如下:public static bool Equals(object objA, object objB) { return ((objA == objB) || (((objA != null) && (objB != null))
Time of Update: 2018-12-08
在C#中所有的異常類型都繼承自System.Exception,也就是說,System.Exception是所有異常類的基類. 總起來說,其衍生類別分為兩種: 1. SystemException類: 所有的CLR提供的異常類型都是由SystemException派生。 2. ApplicationException類: 由使用者程式引發,用於派生自訂的異常類型,一般不直接進行執行個體化。 建立自訂異常類應嚴格遵循幾個原則 1.
Time of Update: 2018-12-08
C#反射的入門學習首先要明白C#反射提供了封裝程式集、模組和類型的對象等等。那麼這樣可以使用反射動態建立類型的執行個體,將類型綁定到現有對象,或從現有對象擷取類型並調用其方法或訪問其欄位和屬性。如果代碼中使用了屬性,可以利用反射對它們進行訪問。 MSDN描述: 反射通常具有以下用途: 使用 Assembly 定義和載入程式集,載入在資訊清單中列出的模組,以及從此程式集中尋找類型並建立該類型的執行個體。 使用 Module