Time of Update: 2018-12-07
摘要 在這個代碼片斷中,Joseph 測試了一個使用 C# 反射來自動實現屬性時,發生了一個意想不到行為的方案。之後提供了該方案的分步說明,他提供了樣本項目最終輸出的、相關的 C# 完整代碼、Visual Studio 2008的項目下載。 by Joseph Chahine Code Listing 1: Employee.csCode highlighting produced by Actipro CodeHighlighter
Time of Update: 2018-12-07
文章目錄 文法文法 支援複製,即用與現有執行個體相同的值建立類的新執行個體。命名空間: System 程式集: mscorlib(在 mscorlib.dll 中)文法C# [ComVisibleAttribute(true)]public interface ICloneableICloneable 介面包含一個成員 Clone,它用於支援除 MemberwiseClone 所提供的複製之外的複製。文法C#Object
Time of Update: 2018-12-07
今天看《Pro Net 2.0 Windows Forms And Custom Cortrols In C#》時看到枚舉一節,發現了在一個枚舉裡面需要合并多個值,看到了用到了”|”運算子,原來沒怎麼注意,今天想了一下為什麼用”|”呢? 在MSDN裡面看到了這樣一句話:“用2的冪(即 1、2、4、8 等)定義枚舉常量。這意味著組合的枚舉常量中的各個標誌都不重疊。” 於是寫了一個例子: [FlagsAttribute] enum Colors_1
Time of Update: 2018-12-07
委託的匿名方法 這幾天在看微軟的MVP設計模式的例子的時候,偶然發現它將DropDownList的SelectIndexChange事件委託直接執行個體化成一個不帶任何參數匿名方法。具體例子如下: CodeCode highlighting produced by Actipro CodeHighlighter
Time of Update: 2018-12-07
強式名稱簽名的方法:1.開啟“Visual Studio 2008 命令提示”命令列工具。2. 用Sn.exe 產生一個Public/Private Key Pair 檔案:Sn -k test.snk. 如果不指定大小,它的大小就是596 bytes(128 publicKey,32 publicKey Header, 436 PrivateKey)。3. 添加 [assembly: AssemblyKeyFile(@"test.snk")]
Time of Update: 2018-12-07
我自己在寫程式過程中,遇到了比較奇怪的沒有初始化問題。最後發現,因為一個全域變數A寫在main函數所在的cpp中,因為標頭檔載入先後問題,導致後邊某個類B中,使用到這個A時,出現問題,本來預計會拿到A裡邊某些資料,但竟然什麼都是0,好像A剛剛初始化一樣。 我不知道根本原因是什麼,我只知道肯定是extern作怪。在類B中,用了extern定義A。但因為類B的標頭檔比main函數在CPP定義全域變數A更早,所以這個extern好像不起作用,VC6也不提示出錯,好像預設變成直接聲明一樣。 反正得到的教
Time of Update: 2018-12-07
RTTI的兩種使用方法:1. 第一種是typeid(),它很像sizeof,看上去像一個函數,但實際上它是由編譯器實現的。 typeid()的參數是一個對象引用或者指標,返回全域typeinfo類的常量對象的一個引用。可以用==或者!=來互相比較這些對象。 ISO C++標準並沒有確切定義typeinfo,它的確切定義編譯器相關的,但是標準卻規定了其實現必需提供如下四種操作: typeinfo1 ==
Time of Update: 2018-12-07
說一哈,我也是轉來的,不是想騙PV,方便自己查而已! 目前網上流行的所謂"取真實IP地址"的方法,都有bug,沒有考慮到多層透明代理的情況。 多數代碼類似: string IpAddress = (HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]!=null && HttpContext.Current.Request.ServerVariables["HTTP_
Time of Update: 2018-12-07
面試題:C#聲明一個100大小的數組 隨機產生1-100之間不重複的數下面是C#的實現方式,編譯測試通過 1 public static void InsertRandomArray() 2 { 3 int[] intArray = new int[100]; 4 ArrayList newArray = new ArrayList(); 5 Random rnd = new Random(); 6
Time of Update: 2018-12-07
1class Program 2 { 3 public static void Main() 4 { 5 int[] sortArray ={ 1, 3, 6, 10, 76, 4, 54, 33, 11, 24, 44 }; 6 FuncSort(sortArray); 7 Console.ReadLine(); 8 } 910 public static void
Time of Update: 2018-12-07
因項目需要簡單的寫了個日期協助類,備忘一下!C#-CODE//============================================================// Producnt name: BoBoARTS.CodeMad// Version: 1.0// Author: 董廣祥// Auto generated at: 2009-8-7 13:36:20//======================================
Time of Update: 2018-12-07
MailAddress from = new MailAddress("gaosheng@hotmail.com", "高升"); //郵件的寄件者MailMessage mail = new MailMessage();//設定郵件的標題mail.Subject = txtSubject.Text;//設定郵件的寄件者//Pass:如果不想顯示自己的郵箱地址,這裡可以填符合mail格式的任意名稱,真正發mail的使用者不在這裡設定,這個僅僅只做顯示用mail.From =
Time of Update: 2018-12-07
yield(C# 參考)在迭代器塊中用於向枚舉數對象提供值或發出迭代結束訊號。它的形式為下列之一:複製代碼 yield return <expression>;yield break; 備忘 計算運算式並以枚舉數對象值的形式返回;expression 必須可以隱式轉換為迭代器的 yield 類型。yield 語句只能出現在 iterator 塊中,該塊可用作方法、運算子或訪問器的體。這類方法、運算子或訪問器的體受以下約束的控制:不允許不安全塊。方法、運算子或訪問器的參數不能是
Time of Update: 2018-12-07
//擷取當前星期的開始日期和結束日期 private void TimeBE(out string bDate, out string eDate) { string firstDateText = NowTime(); DateTime firstDay = Convert.ToDateTime(firstDateText); double theday; if (firstDay.DayOfWeek ==
Time of Update: 2018-12-07
C#-Code // Create the serializer XmlSerializer serializer = new XmlSerializer(typeof(MySerializableType)); // Serialize the object to an XML file using (StreamWriter streamWriter =
Time of Update: 2018-12-07
享元模式是避免大量相同或相似對象的出現而出現的設計模式,一般出現的對象不可能是一樣的對象,它們可能很相似,只是一部分表現或者說是狀態不一樣,這樣,我們就可以把他們相同的部分抽象出來,封裝起來,稱之為內狀態,然後不一樣的地方,稱之為外狀態,通過一定的方法加進對象中去,這樣就達到對象重用的效果,不用再建立那麼多個物件。 #region 享元模式 #region
Time of Update: 2018-12-07
(非本人原創,在此註明,以表對原作者的敬佩http://blog.163.com/sean_1010/blog/static/11080322200952633111975/) 以下是假設舊的C程式庫C的標頭檔/*-----------c.h--------------*/#ifndef _C_H_#define _C_H_extern int add(int x, int y);#endif C的源檔案/*-----------c.c--------------*/int add(int x,
Time of Update: 2018-12-07
2009-09-18 15:371. int sprintf( char *buffer, const char *format [, argument] ... ); <stdio.h>例如:Cpp代碼int ss; char temp[64]; string str; ss = 1000; sprintf(temp, "%d", ss); string s(temp); //調用string的方法 cout<<s.c_str(
Time of Update: 2018-12-07
網上找了大半天,使用了5、6個代碼,都是廢的,總有這樣那樣的問題。都是打著斷點續傳的幌子,做不了實事~~~ 最後還是回到了最早找到的Mydownload。先向這個匿名作者表示衷心的感謝~~~ 看了這個代碼,還是覺得這個代碼最強大~~~~但有小bug,雖然每次下載先判斷有沒有中間檔案存在,但就是續傳錯誤。本來作者的意圖是接著那個中間檔案繼續寫資料,但他就是漏了fseek一句話。加上,Ok~~ 廢話少說,詳細請見附件~~~ 開部落格這麼久,評論都沒一條,悲劇~~怎麼說都不少原創文章嘛~~
Time of Update: 2018-12-07
C調用C++連結庫: 1.編寫C++代碼,編寫函數的時候,需要加入對C的介面,也就是extern “c" 2.由於C不能直接用"class.function”的形式調用函數,所以C++中需要為C寫一個介面函數。例如本來要調用student類的talk函數,就另外寫一個cfun(),專門建一個student類,並調用talk函數。而cfun()要有extern聲明 3.我在練習中就使用在C++標頭檔中加extern ”c”的方法。而C檔案要只需要加入對cpp.h的引用 4.詳細見如下代碼: