Time of Update: 2018-12-07
1. is 是驗證操作對象是不是自己希望的 運算公式:對象 is 類型 返回true:對象是指定類型 返回false:對象不是指定類型2. as 是將對象轉換成指定類型運算公式:對象 as 類型 轉換成功:對象的類型就是指定的類型 轉換失敗:返回null注意: The "is" and "as" operator must be used
Time of Update: 2018-12-07
1、整形int a = 10; 十進位,格式化輸出:%iint b = 0743; 八進位,格式化輸出:%o %#o(輸出前置字元號0)int c = 0x7f3d; 十六進位,格式化輸出:%x %#x(輸出前置字元號0x)2、浮點型float f = 1.234; 格式化輸出:%f(小數部分預設長度為6,不夠用0填補)double d =
Time of Update: 2018-12-07
一個共用單例只是一個用類方法容易獲得的特定執行個體,通常儲存在一個靜態變數中。有很多方法可以實現共用單例,但我的建議是使用Grand Central Dispatch(GCD): 1 + (MYSingleton *)sharedSingleton { 2 static dispatch_once_t pred; 3 static MYSingleton *instance = nil; 4 dispatch_once(&pred, ^{instance = [[self
Time of Update: 2018-12-07
忘記在哪看的這篇文章了,覺得還可以
Time of Update: 2018-12-07
本文轉載自[http://www.cppblog.com/mzty/archive/2006/08/08/10959.html],該轉載僅用於技術交流,不得用於商業用途。volatile關鍵字 volatile關鍵字是一種類型修飾符,用它聲明的類型變數表示可以被某些編譯器未知的因素更改,比如:作業系統、硬體或者其它線程等。遇到這個關鍵字聲明的變數,編譯器對訪問該變數的代碼就不再進行最佳化,從而可以提供對特殊地址的穩定訪問。使用該關鍵字的例子如下:int volatile
Time of Update: 2018-12-07
前端開發中JavaScript代碼的維護總是讓人頭疼,特別是在富用戶端應用中,必須要編寫非常龐大的JavaScript代碼,雖然JavaScript聲稱是物件導向的語言,但對於現代語言中常見的繼承、強型別等的支援十分有限。如果我們能夠將C#語言中的特性運用於JavaScript上,那麼肯定將極大地提高JavaScript代碼的維護性,提升開發效率。Saltarelle編譯器就是這樣的一個工具,他能將C#代碼編譯為JavaScript代碼。本文將展示如何使用Saltarelle編寫JavaScri
Time of Update: 2018-12-07
C#中如何合理的釋放非託管記憶體?在本文中我們將講解使用IDisposable釋放託管記憶體和非託管記憶體。 A.首先需要讓類實現IDisposable介面,然後實現IDispose方法。 A.a核心Disponse(bool
Time of Update: 2018-12-07
線程:線程是進程的獨立執行單元,每一個進程都有一個主線程,除了主線程可以包含其他的線程。多線程的意義:多線程有助於改善程式的總體響應性,提高CPU的效率。 多線程的應用程式定義域是相當不穩定的,因為多個線程在同一時間內都能運行共用的功能模組。為了保護應用程式的資源不被破壞,為多線程程式提供了三種加鎖的機制,分別是:Monitor類、Lock關鍵字和Mutex類。 1. lock
Time of Update: 2018-12-07
C#——方法實現總結本文分兩部分來寫,第一部分:C#方法實現的理解與問題,第二部分:C#中方法實現的種類。第一部分:C#方法實現的理解與問題理解:1. 使用virtual和override關鍵字,在基類和衍生類別中用同樣的方法簽名實現不同的方法2. 使用interface介面,在不同的類中,用相同的方法簽名實現不同的方法3. 用委託delegate,把不同類中的方法集合在一起,然後一起調用,完成某種綜合的功能4.
Time of Update: 2018-12-07
繼承反應了類和類之間的關係。 世界上很多事物都是有共性的,共性的那一部分我們就抽象為基類,用於派生其它類,這樣提高了代碼的複用性,使得代碼的結構清晰易讀,而且易於代碼的擴充和維護。 C#的繼承只能繼承自一個基類,這一點不同於C++的繼承。 C#的繼承具有傳遞性,即B繼承自A,C繼承自B,則C具有A的所有特性。 C#的繼承隱式為public的。
Time of Update: 2018-12-07
1. 擷取絕對檔案路徑System.IO.Path.GetFullPath(string path)string fileName = "myfile.ext";string path1 = @"mydir";string path2 = @"\mydir";string fullPath;fullPath = Path.GetFullPath(path1);fullPath = Path.GetFullPath(fileName);fullPath =
Time of Update: 2018-12-07
1.委託delegate委託delegate也是一種類型,在任何可以聲明類的地方都可以聲明委託,它將方法當做另一個方法的參數進行傳遞,這樣就可以傳遞不同的方法,完成不同的功能,使程式具有很好的可擴充性。舉例:假設這裡有一台電腦,有人會用它寫程式,有人會用它打遊戲,有人會用它看電影,有人會用它邊聽音樂邊玩遊戲,有人會用它邊聽音樂邊看文檔,邊上QQ。這台電腦可以抽象成一個類Computer,裡面有個方法DoWork,所有的人都要通過這個方法來做自己的事情。不用委託的時候我們可以實現一些固定的東西,
Time of Update: 2018-12-07
C#的多態性:我的理解是:同一個操作,作用於不同的對象時,會有不同的結果,即同一個方法根據需要,作用於不同的對象時,會有不同的實現。C#的多態包括:介面多態,繼承多態。其中繼承多態又包括通過虛擬方法實現的多態和通過抽象方法實現的多態性例如:基類動物都有吃的方法,但是不同的動物吃的東西就會不一樣,例如狼吃肉,羊吃草,這樣“吃”的這個方法就要在衍生類別裡面重新實現以下,運行時,通過指向基類的指標,來調用實現衍生類別中的方法。接下來舉例實現多態性。1.
Time of Update: 2018-12-07
哈哈,最近剛剛開始學習C#,感覺挺好。 下面一段代碼是用C#實現的,主要完成對字串的加密和解密操作。 //原始碼//對一段字串實現加密解密操作using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace study_test4{ class Program { static void Main(string[]
Time of Update: 2018-12-07
命名空間和類型具有“成員”。通常可以通過限定名來訪問實體的成員。限定名以對實體的引用開頭,後跟一個“.”標記,再接成員的名稱。類型的成員或者是在該類型中聲明的,或者是從該類型的基類“繼承”的。當類型從基類繼承時,基類的所有成員(執行個體建構函式、解構函式和靜態建構函式除外)都成為衍生類別型的成員。基類中關於成員的可訪問性的聲明不能控制該成員是否可繼承:繼承性適用於任何成員,只要它們不是執行個體建構函式、靜態建構函式或解構函式。然而,在衍生類別中可能不能訪問已被繼承的成員,原因或者是因為其已聲明可
Time of Update: 2018-12-07
大家都知道,抽象類別是不可以執行個體化的,那麼在抽象類別中是否可以有建構函式呢?很多初學者都有類似的疑問! 答案是肯定的,而且如果我們自己沒有定義的話,編譯器還會為我們產生一個預設的建構函式的,看這段代碼: public abstract class MyAbstractClass { }我們自己並沒有自己定義建構函式,我們用ILDasm工具來看看產生的IL代碼:.method family hidebysig specialname rtspecialname
Time of Update: 2018-12-07
【導讀】學過編程的朋友都知道類型轉換,並且也都清楚“隱式轉換”、“顯式轉換”、“裝箱”、“拆箱”等概念。但是,類型轉換究竟有多少種?如何對其進行劃分?何時應該使用何種類型轉換?隱式轉換短->長子類->父類實值型別->參考型別顯式轉換長->短父類->子類參考型別->實值型別 變換投射裝/折箱 下載:C#類型轉換.doc(作者:劉彥博(微軟MVP))
Time of Update: 2018-12-07
NO.1:如果在為方法聲明參數時未使用 ref 或 out,則該參數可以具有關聯的值。可以在方法中更改該值,但當控制傳遞迴調用過程時,不會保留更改的值。通過使用方法參數關鍵字,可以更改這種行為。paramsparams 關鍵字可以指定在參數數目可變處採用參數的方法參數。 在方法聲明中的 params 關鍵字之後不允許任何其他參數,並且在方法聲明中只允許一個 params 關鍵字。樣本: CodeCode highlighting produced by Actipro
Time of Update: 2018-12-07
C# 也允許您重載運算子,以供您自己的類使用。這樣做,可以使使用使用者定義的資料類型就像使用基礎資料型別 (Elementary Data Type)一樣自然、合理。例如,您可以建立一個名為 ComplexNumber 的新資料類型來表示一個複雜的數字,並提供使用標準算術運算子對此類數字執行數學運算的方法,如使用 + 運算子將兩個複雜數字相加。若要重載某個運算子,可以編寫一個函數,在其命名運算子之後加上要重載的運算子的符號。例如,可按以下方法重載 + 運算子:public static
Time of Update: 2018-12-07
1.override: 父類:public virtual string ToString(){return "a";} 子類:public override string ToString(){return "b";}2.overload: 同一類中或父子關係類中皆可. public string ToString(){return "a";} public string