Time of Update: 2016-12-14
標籤:sub 檔案路徑 family odi read 位元組 維數 擷取 dia 上周我們進行了結業項目答辯,是播放器項目。有一個關於播放器變唱歌邊載入歌詞的方法特別有意思,像酷狗那樣子歌詞和
Time of Update: 2016-12-14
1 基本操作(1)標頭檔#include<vector>.(2)建立vector對象,vector<int> vec;(3)尾部插入數字:vec.push_back(a);(4)使用下標訪問元素,cout<<vec[0]<<endl;記住下標是從0開始的。(5)使用迭代器訪問元素.vector<int>::iterator it;for(it=vec.begin();it!=vec.end();it++) cout<<
Time of Update: 2016-12-14
從序言中,大家應該對委託和事件的重要性有點瞭解了吧,雖然說我們現在還是能模糊,但是從我的大白話系列中,我會把這些概念說的通俗易懂的。首先,我們還是先說說委託吧,從字面上理解,只要是中國人應該都知道這個意思,除非委託2個中文字不認識,舉個例子,小明委託小張去買車票。 但是在我們的程式世界裡,也是這麼的簡單嗎?當然,什麼是OO,OO就是現實世界的抽象,所有現實世界的事物,在OO裡都能得到很好的詮釋,不好意思,扯遠了......
Time of Update: 2016-12-14
1. 委託是什嗎?其實,我一直思考如何講解委託,才能把委託說得更透徹。說實話,每個人都委託都有不同的見解,因為看問題的角度不同。個人認為,可以從以下2點來理解: (1) 從資料結構來講,委託是和類一樣是一種使用者自訂類型。 (2) 從設計模式來講,委託(類)提供了方法(對象)的抽象。既然委託是一種類型,那麼它儲存的是什麼資料?我們知道,委託是方法的抽象,它儲存的就是一系列具有相同簽名和返回回類型的方法的地址。調用委託的時候,委託包含的所有方法將被執行。 2.
Time of Update: 2016-12-13
引言異常,讓一個函數可以在發現自己無法處理的錯誤時拋出一個異常,希望它的調用者可以直接或者間接處理這個問題。而傳統錯誤處理技術,檢查到一個局部無法處理的問題時:1.終止程式(例如atol,atoi,輸入NULL,會產生段錯誤,導致程式異常退出,如果沒有core檔案,找問題的人一定會發瘋)2.返回一個表示錯誤的值(很多系統函數都是這樣,例如malloc,記憶體不足,分配失敗,返回NULL指標)3.返回一個合法值,讓程式處於某種非法的狀態(最坑爹的東西,有些第三方庫真會這樣)4.調用一個預先準備好在
Time of Update: 2016-12-13
函數模板在c++入門中,很多人會接觸swap(int&, int&)這樣的函數類似代碼如下:void swap(int&a , int& b) { int temp = a; a = b; b = temp;}但是如果是要支援long,string,自訂class的swap函數,代碼和上述代碼差不多,只是類型不同,這個時候就是我們定義swap的函數模板,就可以複用不同類型的swap函數代碼,函數模板的聲明形式如下:template
Time of Update: 2016-12-13
我們建立一個Windows Form時,後台代碼都會自動添加如下代碼:1 public partial class Form1 : Form2 {3 public Form1()4 {5 InitializeComponent();6 }7 }為什麼類Form1 要用partial修飾?partial主要用在哪些地方? 為什麼建立立的Winows
Time of Update: 2016-12-13
1. 什麼是局部類型?C# 2.0 引入了局部類型的概念。局部類型允許我們將一個類、結構或介面分成幾個部分,分別實現在幾個不同的.cs檔案中。局部類型適用於以下情況:(1) 類型特別大,不宜放在一個檔案中實現。(2) 一個類型中的一部分代碼為自動化工具產生的程式碼,不宜與我們自己編寫的代碼混合在一起。(3) 需要多人合作編寫一個類。局部類型是一個純語言層的編譯處理,不影響任何執行機制——事實上C#編譯器在編譯的時候仍會將各個部分的局部類型合并成一個完整的類。 public partial
Time of Update: 2016-12-13
若要瞭解有關 Visual Studio 2017 RC 的最新文檔,請參閱 Visual Studio 2017 RC 文檔。在通過 dynamic 類型實現的操作中,該類型的作用是繞過編譯時間類型檢查, 改為在運行時解析這些操作。 dynamic 類型簡化了對 COM API(例如 Office Automation API)、動態 API(例如 IronPython 庫)和 HTML 文件物件模型 (DOM) 的訪問。在大多數情況下,dynamic 類型與 object
Time of Update: 2016-12-13
dynamic是FrameWork4.0的新特性。dynamic的出現讓C#具有了弱語言類型的特性。編譯器在編譯的時候不再對類型進行檢查,編譯期預設dynamic對象支援你想要的任何特性。比如,即使你對GetDynamicObject方法返回的對象一無所知,你也可以像如下那樣進行代碼的調用,編譯器不會報錯:dynamic dynamicObject =
Time of Update: 2016-12-12
《設計模式》中把 Singleton 寫成返回指標:class Singleton{public: static Singleton* Instance();protected: Singleton();private: static Singleton* _instance;};相應的實現 cpp 檔案是:Singleton* Singleton::_instance;Singleton* Singleton::Instance(){ if( _instance ==
Time of Update: 2016-12-12
說起觀察者模式,估計在園子裡能搜出一堆來。所以寫這篇部落格的目的有兩點:1.觀察者模式是寫松耦合代碼的必備模式,重要性不言而喻,拋開代碼層面,許多組件都採用了Publish-Subscribe模式,所以我想按照自己的理解重新設計一個使用情境並把觀察者模式靈活使用在其中2.我想把C#中實現觀察者模式的三個方案做一個總結,目前還沒看到這樣的總結現在我們來假設這樣的一個情境,並利用觀察者模式實現需求:未來智能家居進入了每家每戶,每個家居都留有API供客戶進行自訂整合,所以第一個智能鬧鐘(smartCl
Time of Update: 2016-12-12
(1)不需要傳遞參數,也不需要返回參數ThreadStart是一個委託,這個委託的定義為void ThreadStart(),沒有參數與傳回值。class Program{static void Main(string[] args){for (int i = 0; i < 30; i++){ThreadStart threadStart = new ThreadStart(Calculate);Thread thread = new Thread(threadStart);thread.
Time of Update: 2016-12-12
一、使用線程的理由1、可以使用線程將代碼同其他代碼隔離,提高應用程式的可靠性。2、可以使用線程來簡化編碼。3、可以使用線程來實現並發執行。二、基本知識1、進程與線程:進程作為作業系統執行程式的基本單位,擁有應用程式的資源,進程包含線程,進程的資源被線程共用,線程不擁有資源。2、前台線程和後台線程:通過Thread類建立線程預設為前台線程。當所有前台線程關閉時,所有的後台線程也會被直接終止,不會拋出異常。3、掛起(Suspend)和喚醒(Resume):由於線程的執行順序和程式的執行情況不可預知,
Time of Update: 2016-12-12
【程式1】 題目:有1、2、3、4個數字,能組成多少個互不相同且無重複數位三位元?都是多少? 1.程式分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列後再去 掉不滿足條件的排列。 2.程式原始碼:main() { int i,j,k; printf("\n"); for(i=1;i<5;i++) /*以下為三重迴圈*/ for(j=1;j<5;j++) for (k=1;k<5;k++) { if
Time of Update: 2016-12-10
原型模式的定義:用原型執行個體指定建立對象的種類,並且通過拷貝這些原型建立新的對象。原型模式結構圖:建立型模式中一個比較特殊的模式-原型模式,有個最大的特點是複製一個現有的對象,這個複製的結果有2種,一種是淺度複製,另一種是深度複製。建立型模式一般是用來建立一個新的對象,然後我們使用這個對象完成一些對象的操作,我們通過原型模式可以快速的建立一個對象而不需要提供專門的new()操作就可以快速完成對象的建立,這無疑是一種非常有效方式,快速的建立一個新的對象。1.原型模式:淺度複製定義一個介面,
Time of Update: 2016-12-10
Factory 方法模式介紹:Factory 方法(Factory Method)模式的意義是定義一個建立產品對象的工廠介面,將實際建立工作延遲到子類當中。核心工廠類不再負責產品的建立,這樣核心類成為一個抽象工廠角色,僅負責具體工廠子類必須實現的介面,這樣進一步抽象化的好處是使得Factory 方法模式可以使系統在不修改具體工廠角色的情況下引進新的產品。Factory 方法模式結構圖:角色分類:抽象工廠角色:是Factory
Time of Update: 2016-12-10
一、簡介在ASP.NET Core MVC中,檔案上傳的最大上傳檔案預設為20MB,如果我們想上傳一些比較大的檔案,就不知道怎麼去設定了,沒有了Web.Config我們應該如何下手呢?二、設定上傳檔案大小1.應用程式層級設定我們需要在 ConfigureServices方法中添加如下代碼,設定檔案上傳的大小限制為60 MB。public void ConfigureServices(IServiceCollection services){
Time of Update: 2016-12-10
概覽:網站中點擊退出,如果僅僅是重新導向到登入/出頁面,此時在瀏覽器地址欄中輸入登入後的某個頁面地址如首頁,你會發現不用登入就能訪問。這種所謂的退出並不是安全的。那麼怎樣做到安全退出呢?那就是點擊退出後清空相應的Session或Cookie。清空Session的代碼:Session.Clear();Session.Abandon(); 清除Cookie的正確代碼(假設Cookie名稱為UserInfo):if (Request.Cookies["UserInfo"] !=
Time of Update: 2016-12-10
mvc中form表單提交的幾種形式第一種方式:submit 按鈕 提交<form action="MyDemand" method="post"> <span>關鍵字:</span> <input name="keywords" type="text" value="@keywords" /> <input