Time of Update: 2018-12-07
1. 服務端程式Code highlighting produced by Actipro CodeHighlighter
Time of Update: 2018-12-07
一種經常發生的裝箱Int32 i = 100;Console.WriteLine("The number is: " + i); 通過VS SDK Tools裡的IL DASM工具看看產生的IL代碼:.method private hidebysig static void Main(string[] args) cil managed{ .entrypoint // Code size 27 (0x1b) .maxstack 2 .locals init
Time of Update: 2018-12-07
問題描述 C#2.0出現了匿名方法, 這在一定程度上節省了我們維護代碼內容相關的精力, 也不需要思考為某個方法取什麼名字比較合適. 在FCL的一些方法中要求傳入一個Delegate類型的參數, 比如Control.Invoke或者Control.BeginInvoke方法:public object Invoke(Delegate method);public IAsyncResult BeginInvoke(Delegate method); 在這種情況下,
Time of Update: 2018-12-07
近幾日,看了一下 Android 開發,看到 java 與 C# 有許多不同的用法。都是物件導向的語言,但是禪宗分南北,還是有不少用法上的不同,這裡總結一下。一. 類名.this 與內部類在 java 中,經常看到類似類名.this 的用法,this 就是當前對象執行個體,為什麼前面會出現類名呢?對此 C# 程式員會很納悶。在 Java 中,很多地方使用到了內部類,甚至可以在在內部類中訪問外部類中的成員,這個時候,在內部類中使用 this 的時候,就會出現 this
Time of Update: 2018-12-07
文章目錄 目錄1. 使用命名的方法2. 使用匿名方法3. 使用lambda運算式總結內容來源 目錄Lambda運算式 運算式樹狀架構 關鍵字變數var、對象和集合初始化,以及匿名型別 擴充方法 ( Extension Method ) 分部方法 ( Partial Method ) 查詢運算式 Lambda運算式在C# 3.0 中,Microsoft 添加了“lambda
Time of Update: 2018-12-07
1.Switch(1)C#中case值不能使用變數(可以使用常量)(2)啟用了其中一個Case語句則其他Case不能被啟用,除非使用goto case語句(3)如果Case語句處理為空白 即:【case “asd” :case “eee”:】 則可以實現多條件並用處理(4)case順序無關緊要,所以所有case的值不能相同(包括值相同的常量)(5)C#中case可以進行字串的判斷2.枚舉類(enum)(0)枚舉類定義方法public enum TimeOfDay{ Moring = 0,
Time of Update: 2018-12-07
理解C#中的委託(Deligate) 原作者:lakshimi patil 翻譯:tongzhiyong這個指南敘述了一些C#語言中的主要特性,即委託和事件。文章中原始碼地址:http://www.codeproject.com/useritems/Deligates/Deligates.zip導言什麼是委託?我們都熟悉函數。函數執行預先定義的一組操作並且根據傳入的參數來返回結果。例如,函數AddOper(a,b)將兩個數a和b相加然後返回這兩個數的和。現在我們來考慮寫一個通用的函數。
Time of Update: 2018-12-07
// ActiveObject.cpp : 定義控制台應用程式的進入點。//#include "stdafx.h"#include <Windows.h>#include <deque>#include <iostream>using namespace std;double secondsPerTick = 0;class Command{public:virtual void Execute()=0;};class
Time of Update: 2018-12-07
編譯大型工程的時間很大程度上取決於標頭檔的數量和深度。【The time it takes to compile a large project can depend greatly on the number and depth of #include files .】 使用並行編譯 使用分布式編譯:Incredibuild 盡量使用前置聲明【Forward declarations are a common solution】 將代碼從標頭檔稱至CPP檔案【Pushing code
Time of Update: 2018-12-07
C#的System命名 空間定義了可用於局部變數、成員變數,參數和傳回值的基本類型。在C#中有相應的關鍵字相對應。關鍵字系統類別型範圍描述boolSystem.Booleantrue/false表示邏輯真或者假sbyteSystem.SByte-128~127帶符號8位元byteSystem.Byte0~256無符號的8位元shortSystem.Int16-32768~32767帶符號16位元ushortSystem.UInt160~65535無符號16位元intSystem.Int32-21
Time of Update: 2018-12-07
預先處理指令主要用於影響程式的編譯過程,提供編譯資訊或禁止部分程式碼片段的編譯,C#其實並沒有C++一樣的獨立前置處理器,預先處理指令也是由編譯器處理的1.#define,#undef 用於聲明或刪除符號定義,#define和#undef必須放在檔案的第一行,且定義的符號(變數)只在當前檔案範圍內有效2.#if,#elif,#else ,#endif 用於在根據定義的符號/變數 來判斷標識的代碼塊是否需要被編譯,如果不需要,則不會對其進行編譯,產生的可執行檔也會相應縮小#define
Time of Update: 2018-12-07
字串表現資訊的能力非常強大。對於String,C#提供了很多基本方法,並且對其進行了最佳化,下面介紹下一些基礎知識,可作為參考。1. 常用方法方法名靜態或執行個體方法描述Compare 比較兩個指定的 String 對象。CompareOrdinal 通過計算每個字串中相應 Char 對象的數值來比較兩個 String 對象。CompareTo 將此執行個體與指定的對象或 String 進行比較,並返回二者相對值的指示。Concat 串連 String 的一個或多個執行個體,或 Object
Time of Update: 2018-12-07
#include <stdio.h>#include <stdlib.h>#include <malloc.h>#include <assert.h>#include <pthread.h>#define FALSE 0pthread_mutex_t thread_mutex = PTHREAD_MUTEX_INITIALIZER;pthread_mutex_t task_mutex =
Time of Update: 2018-12-07
實際中有時需要對資料進行分析, 最近就遇到了這樣一個情況: 有一系列橫座標是時間, 縱座標是記錄值的一些資料, 但橫座標卻不是等距記錄的. 就是說在第一分鐘記錄一次, 第二分鐘記錄一次, 第四分鐘記錄一次...不等距. 需求是根據現在的這些資料進行計算, 獲得等距時間所對應的記錄值, 也就是說第三分鐘沒有記錄, 得通過計算來獲得第三分鐘的值. 原本想把這些資料顯示在Chart控制項中, 然後再從Chart控制項中擷取各個X座標所對應的Y值, 但後來發現這樣不可行,
Time of Update: 2018-12-07
1. 寬化轉換() – Widening Conversions從資料範圍較窄的類型轉換到資料範圍較寬的類型,一般情況下不會帶來資料的損失。類型不損失資料的可以轉化目標類型ByteUInt16, Int16, UInt32, Int32, UInt64, Int64, Single, Double, DecimalSByteInt16, Int32, Int64, Single, Double, DecimalInt16Int32, Int64, Single, Double,
Time of Update: 2018-12-07
1. 所有對象都繼承自System.Object,而所有的實值型別都繼承自System.ValueType。也就是說,System.ValueType重寫了System.Object的方法使得實值型別的操作是基於值而不是基於引用。 2.
Time of Update: 2018-12-07
.NET預設情況下不能給實值型別賦值null,可以通過可空類型定義除了實值型別還能為空白的情況。例如: bool? myBool = null;本質上可空類型文法是System.Nullable<T>的簡寫,你同樣可以這麼寫: Nullable<bool> myBool = null; ??表示在獲得實際值是null時,可以用這個運算子給可空類型賦值,比如: bool? myBool = null; bool? result =
Time of Update: 2018-12-07
View Code 1 //string localFilePath, fileNameExt, newFileName, FilePath; 2 SaveFileDialog saveFileDialog1 = new SaveFileDialog(); 3 4 //設定檔案類型 5 saveFileDialog1.Filter = " txt files(*.txt)|*.txt|All files(*.*)|*.*"; 6
Time of Update: 2018-12-07
1. 抽象了除了能夠定義抽象成員之外,還能提供一些成員的具體實現細節。而介面只能包含一組抽象的成員定義。 2. 抽象類別和介面都能提供對多態的支援。區別在於,抽象類別要實現多態,必須存在繼承它的子類,而不能是同層級或者高一層級的類。介面支援多態,沒有繼承階層的限制。只要一組類實現了介面,這組類就體現了多態的行為。一個例子就是:System.Array,System.String沒有父子關係但是他們都實現了ICloneable這個介面。 3.
Time of Update: 2018-12-07
淺拷貝與深拷貝區別在與處理參考型別的不同,處理實值型別是完全一樣的。當處理實值型別時,兩種拷貝方式都是直接分配新的記憶體地區同時複製實值型別的值。處理參考型別時,淺拷貝僅僅複製它的地址,而不會產生一個新的對象。深拷貝則要求產生新的對象,並且將原對象的值複製到新對象中去。 實現方式: 1. 對於實值型別:淺拷貝: 通過賦值等操作直接實現,將對象中的實值型別的欄位拷貝到新的對象中。深拷貝:通過賦值等操作直接實現,將對象中的實值型別的欄位拷貝到新的對象中。 和淺拷貝相同2.