Time of Update: 2017-02-06
標籤:val log 簡潔 起源 方法 情境 時間 送書 建立 以前我都是通過定義一個delegate來寫委託的,但是最近看一些外國人寫的源碼都是用action和func方式來寫,當時感覺對這很
Time of Update: 2017-02-07
序博主簡單數了下自己發布過的非同步文章,已經斷斷續續 8 篇了,這次我想以 async 的傳回型別為例,單獨談談。非同步方法呼叫具有三個可能的傳回型別:Task<TResult>、Task 和 void。 什麼時候需要使用哪一種傳回型別,具體情況需要具體分析。如果使用不當,程式的執行結果也許並不是你想要的,下面我們就來好好談談如何針對不同的情況選擇不同的傳回型別。Task<TResult> 【記住】當你添加 async 關鍵字後,需要返回一個將用於後續操作的對象,請使用
Time of Update: 2017-02-07
在使用物件導向的語言進行項目開發的過程中,較多的會使用到“繼承”的特性,但是並非所有的情境都適合使用“繼承”特性,在設計模式的一些基本原則中也有較多的提到。繼承的有關特性的使用所帶來的問題:對象的繼承關係實在編譯時間就定義好了,所以無法在運行時改變從父類繼承的實現。子類的實現與它父類有非常緊密的依賴關係,以至於父類實現中的任何變化必然會導致子類發生變化。當你需要複用子類時,如果繼承下來的實現不適合解決新的問題,則父類必須重寫它或被其他更適合的類替換,這種依賴關係限制了靈活性並最終限制了複用性。替
Time of Update: 2017-02-07
工作用到檔案上傳的功能,在這個分享下 ~~Controller: public class PictureController : Controller { private IHostingEnvironment hostingEnv; public PictureController(IHostingEnvironment env) { this.hostingEnv = env; } // GET:
Time of Update: 2017-02-07
ASP.NET Core MVC 配置全域路由首碼前言大家好,今天給大家介紹一個 ASP.NET Core MVC 的一個新特性,給全域路由添加統一首碼。嚴格說其實不算是新特性,不過是Core MVC特有的。應用背景不知道大家在做 Web Api 應用程式的時候,有沒有遇到過這種情境,就是所有的介面都是以 /api 開頭的,也就是我們的api
Time of Update: 2017-01-23
lambda簡介熟悉Python的程式員應該對lambda不陌生。簡單來說,lambda就是一個匿名的可調用代碼塊。在C++11新標準中,lambda具有如下格式:[capture list] (parameter list) -> return type { function body }可以看到,他有四個組成部分: 1.capture list: 捕獲列表 2.parameter list: 參數列表 3.return type: 傳回型別
Time of Update: 2017-01-22
首先得知道cmd介面中可以對windows使用者帳號進行操作在c/c++中用system("")就能直接與cmd進行通訊下面是代碼,很簡單,不再解釋,我們從示範來看這兩句代碼的功能!# include <stdlib.h> # include <stdio.h> # include <windows.h> int main() { int i = 1; int a;
Time of Update: 2017-02-06
LINQ 簡介Language-integrated Query (LINQ) (LINQ) 是 Visual Studio 2008 和 .NET Framework 3.5 版中引入的一項創新功能。傳統上,針對資料的查詢都是以簡單的字串表示,而沒有編譯時間類型檢查或 IntelliSense 支援。此外,您還必須針對以下各種資料來源學習一種不同的查詢語言:SQL 資料庫、XML 文檔、各種 Web 服務等等。 通過LINQ,
Time of Update: 2017-02-06
需求:是這樣的,要開發一個簡訊發送的模板,不同客戶可能會使用不同的模板,而不同的客戶使用的變數參數也是不同的。之前為了應急,線上已經完成了一個簡訊模板傳送簡訊的功能,簡訊模板表也建立了,而且在表中已經新增了一條記錄。我只需要做一個簡訊模板的增刪改查介面就可以了,看上去我的工作挺簡單的,老司機應該知道,接了個爛攤子。所示是原來已經建立好了的表SQL建立指令碼如下:在這之前是已經開發了一個傳送簡訊的API介面供客戶調用了的,也就是說調用方(客戶),不會修改代碼,只能我這邊來修改。雖然極不情願接做了一
Time of Update: 2017-02-06
並發集合1 為什麼使用並發集合?原因主要有以下幾點:System.Collections和System.Collections.Generic名稱空間中所提供的經典列表、集合和數組都不是安全執行緒的,若無同步機制,他們不適合於接受並發的指令來添加和刪除元素。在並發代碼中使用上述經典集合需要複雜的同步管理,使用起來很不方便。使用複雜的同步機制會大大降低效能。NET Framework 4所提供的新的集合儘可能地減少需要使用鎖的次數。這些新的集合通過使用比較並交換(compare-and-swap,
Time of Update: 2017-02-06
背景介紹在C++程式啟動並執行過程中免不了要進行資源的分配——尤其是在遊戲中!資源可以有很多中,從紋理、聲音、著色器代碼到控制代碼、字串這些東西都可以被稱為資源。資源的管理是項目中很重要的一輪,做得不好的話輕則記憶體流失、重則記憶體崩潰。RAII則是在C++項目中用於資源管理的一種重要的編程思想。先說一點C++C++中不可或缺的東西就是class,而每個class不可或缺的就是建構函式和解構函式。前者用於對象被構造時進行的一系列操作,後者用於對象被析構時所執行的函數。而值得一提的是,在C++中,
Time of Update: 2017-02-06
之前,多線程一些基本的東西,包括線程建立,互斥鎖,訊號量,我們都已經封裝,下面來看看訊息佇列我們盡量少用系統內建的訊息佇列(比如Linux的sys/msgqueue),那樣移植性不是很強,我們希望的訊息佇列,在訊息打包和提取都是用的標準的C++資料結構,當然,你也可以用鏈表或者是FIFO,那樣得先寫個鏈表或者FIFO出來。我比較懶,直接用的C++的STL的deque,即雙連接埠隊列,這樣可靠性有保證,當然,速度可能沒有自己寫的鏈錶快,但是沒關係,使用雙連接埠隊列還可以根據你自己的需要將資料插入到
Time of Update: 2017-02-06
幾年前寫過一個C++的多線程架構,雖然寫完了,但是人一懶做了一次說明以後就沒影了,最近把代碼整理了一下,準備發到github上,在這裡,再把這個架構總結一下吧。多線程一直是編程中常見的問題,特別是在Linux的c++上,多線程的封裝一直不是很好,當然,有很多第三方庫可以用,比如boost之類的,但是我們有時候並不需要那麼龐大的庫,只需要一個輕量級的線程架構就行了,於是自己編了一個,目前只在Linux下用了,但是設計的時候是按照多平台來編的,如果你有需要,可以自己添加一些個類,把他變成一個wind
Time of Update: 2017-02-06
C++ 智能指標詳解一、簡介由於 C++ 語言沒有自動記憶體回收機制,程式員每次 new 出來的記憶體都要手動 delete。程式員忘記 delete,流程太複雜,最終導致沒有 delete,異常導致程式過早退出,沒有執行 delete
Time of Update: 2017-02-04
調用父類方法時,如何與子類方法,在鎖對象不是同一個執行個體下,能安全執行緒,請見下面三種情況。case1:如下代碼,在調用父類的方法時,和子類的方法,發生安全執行緒問題。原因的鎖對象的執行個體不是同一個。using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Threading;namespace
Time of Update: 2017-02-03
如果頁面單純的使用js來建立,要寫大量的代碼,而且不直觀。 在asp.net中,其實我們可以建立使用者自訂控制項,通過Ajax請求返回使用者自訂控制項HTML代碼。public static string RangerUsControl(string controlName) { StringBuilder build = new StringBuilder(); HtmlTextWriter htmlWriter = new HtmlTextWriter(new
Time of Update: 2017-02-03
一個HTML頁面有很多的元素比如<DIV>,<P>等。這些元素構成了HTML頁面。在Web開發中許可權控制是每個系統都要用到了。介面每個元素的許可權也是需要控制的。比如一個查詢使用者的介面裡面有查詢使用者按鈕,添加使用者按鈕,刪除使用者按鈕,不同的角色我們得分配不同的許可權,比如一般使用者只有查詢使用者按鈕的許可權;管理員有添加使用者按鈕,查詢使用者按鈕的許可權;超級管理員查詢使用者按鈕,添加使用者按鈕,刪除使用者按鈕的許可權。如何讓這三種使用者在登入以後得到三種不同的介
Time of Update: 2017-02-03
本文執行個體講述了ASP.NET動態增加HTML元素的方法。分享給大家供大家參考,具體如下:在使用asp.net進行web開發的時候頁面中的<head></head>中的資訊可以通過asp.net的cs檔案動態指定。1、動態增加樣式表/*動態增加樣式表*/HtmlLink link = new HtmlLink();link.Attributes.Add("type",
Time of Update: 2017-01-24
先看下面的代碼: int tempi = 1; object o = tempi; double tempd = (double) o;編譯時間可以通過,但運行時卻報如下錯誤: System.InvalidCastException: 指定的轉換無效。 這是因為,當對一個對象進行拆箱時,轉型的結果必須是它原來未裝箱的類型。此處必須先轉換為int類型,才能再轉換為double類型。其正確格式如下: int tempi = 32; object o = tempi; double tempd = (
Time of Update: 2017-01-24
一、 概述: Web Services是由企業發布的完成其特定商務需求的線上應用服務,其他公司或應用軟體能夠通過Internet來訪問並使用這項線上服務。它邏輯性的為 其他應用程式提供資料與服務.各應用程式通過網路通訊協定和規定的一些標準資料格式(Http,XML,Soap)來訪問Web Service,通過Web Service內部執行得到所需結果。由於它通過internet進行調用,必然存在網路使用者都可以調用的安全問題。如何?webservice的訪問