Time of Update: 2017-02-27
C#分部方法的文法在看C#語言的What's New時,突然發現新特性列表的最後,多出了一個“Partial Method
Time of Update: 2017-02-27
首先來看一個很簡單的LINQ查詢例子,查詢一個int 數組中小於5的數字,並按照大小順序排列:class Program{ static void Main(string[] args) { int[] arr = new int[] { 8, 5, 89, 3, 56, 4, 1, 58 };
Time of Update: 2017-02-27
C# 3.0 中對象初始化器(Object Initializers) 和 集合初始化器(Collection Initializers) ,就是簡化我們的代碼,讓本來幾行才能寫完的代碼一行寫完。這樣在LINQ的使用中,我們才不會把一個LINQ運算式寫的巨複雜無比。 由於我看到幾篇講 對象初始化器(Object Initializers)和集合初始化器(Collection Initializers)
Time of Update: 2017-02-27
有關擴充方法的一些知識點請參看我的前篇部落格:C#3.0 中的擴充方法 (Extension Methods)前篇部落格中我重點介紹了兩個特殊情境:1、擴充方法跟原來類的方法重名時候的處理邏輯2、擴充方法的嵌套現在我們來看擴充方法使用的第三個情境:使用擴充方法來擴充介面應用情境舉例:我們有時候會發現最初定義的一個介面,在現在環境下,這個介面需要再增加一個函數。有了擴充方法後,我們在這種情況下又多了一種實現的選擇。下面以代碼來說明這個問題:namespace
Time of Update: 2017-02-27
前面的文章中,大家已經對C#3.0的新特性有了一個基本的瞭解,比如強大的LINQ語言和擴充方法的應用,今天給大家介紹的是C#3.0中添加的另一個重要的新特性:匿名方法。1. 匿名溯源匿名的曆史可謂由來已久,在C#2.0中匿名方法就已經大量使用在委託(delegate)的應用情境中。下面我舉幾個例子大家可以簡單回顧一下:1) 當我們需要調用一個回調方法時,不需要構建委派物件,只需要將回調方法名傳入,CLR會替我們完成委派物件的建立工作。//example 1public static void
Time of Update: 2017-02-27
摘要:本文討論了如何使用C#2.0實現抓取網路資源的網路蜘蛛。使用這個程式,可以通過一個入口網址(如http://www.comprg.com.cn)來掃描整個互連網的網址,並將這些掃描到的網址所指向的網路資源下載到本地。然後可以利用其他的分析工具對這些網路資源做進一步地分析,如提取關鍵詞、分類索引等。也可以將這些網路資源作為資料來源來實現象Google一樣的搜尋引擎。關鍵詞:C#2.0,Html,網路蜘蛛, 鍵樹,Regex一、引言在最近幾年,以Google為首的搜尋引擎越來越引起人們的關注。
Time of Update: 2017-02-27
在平時做架構架構設計的時候,頭疼之一的是處處得採用反射,但有了C#4.0,發現dynamic完全可以取代反射,這個功能讓我有些激動,立馬在VS2010將日誌跟蹤器架構裡的第一個反射的代碼升級到C#4.0,結果一點都不令人失望,代碼簡化了很多。先看看用dynamic替換反射後的代碼吧:1 using System;2 using System.Collections.Generic;3 using System.Linq;4 using System.Text;5 using
Time of Update: 2017-02-27
Optional and named parameters特性在有些場合提供很大的方便,特別是Office開發中可以告別一坨System.Reflection.Missing了。這裡簡單瞭解一下C#4.0中的Optional and named parameters。在VS2010 CTP中的C#4.0編譯器調試通過,正式版可能會有些變化。1.使用樣本class Program{ static void Main(string[] args) { Test t =
Time of Update: 2017-02-27
本文大部分內容整理自msdn3、分部方法分部方法使類的某個部分的實施者能夠定義方法(類似於事件)。類的另一部分的實施者可以決定是 否實現該方法。如果未實現該方法,編譯器將移除方法簽名以及對該方法的所有調用。因此,部分類別中的 任何代碼都可以隨意地使用分部方法,即使未提供實現也是如此。如果調用了未實現的方法,將不會導致 編譯時間錯誤或執行階段錯誤。在自訂產生的程式碼時,分部方法特別有用。這些方法允許保留方法名稱和簽名,因此產生的程式碼可
Time of Update: 2017-02-27
為了使LINQ可以無縫的和C#語言整合在一起,微軟對C#3.0加入了些新功能,這裡主要介紹和LINQ相關 的加強。1、var關鍵字,集合初始化以及匿名型別2、Lambda 運算式3、部分(Partial )方法4、擴充方法5、運算式樹狀架構1、var關鍵字,集合初始化以及匿名型別var:可以賦予局部變數推斷“類型”var 而不是顯式類型。var 關鍵字指示編譯器根據初始化語句右側的 運算式推斷變數的類型。推斷類型可以是內建類型、匿名型別、使用者定義型別、.NET
Time of Update: 2017-02-27
對於大量資料的查詢和展示使用分頁是一種不錯的選擇,這篇文章簡要介紹下自己實現分頁查詢的思路。分頁需要三個變數:資料總量、每頁顯示的資料條數、當前頁碼。//資料總量int dataCount;//每頁顯示的資料條數int pageDataCount;int pageNumber;根據資料總量和每頁顯示的資料條數計算出總頁數,根據當前頁碼和每頁顯示的資料條數計算出從資料庫中讀取資料的起始行號和結束行號。//總頁數int pageCount = (int)Math.Ceiling(dataCount/
Time of Update: 2017-02-27
ASP.NET Core Data Protection 不僅提供了非對稱式加密能力,而且提供了靈活的秘鑰儲存方式以及一致的加解密介面(Protect與Unprotect)。Session中用到了它,Cookie驗證中用到了它,OpenIdConnect中也用到了它。。。當然你也可以在應用開發中使用它,比如這篇博文中就是用它產生啟用帳戶的驗證token。首先在 Startup.ConfigureServices() 中註冊 DataProtection 服務(注入
Time of Update: 2017-02-27
背景及需求項目使用的是MVC4架構,其中有一個功能是根據設定產生PDF檔案,並在點擊時直接預覽。實現過程1、第一版實現代碼:HTML內容@{ Layout = null;}<!DOCTYPE html><html><head> <meta name="viewport" content="width=device-width" />
Time of Update: 2017-02-27
C#編寫XML讀寫類操作xml檔案下面的例子是用C# 在asp.net 中實現對xml的操作,環境是vs2005 , 自己寫了一個操作類,然後在使用的時候調用它。實現:登入使用者資訊的添加、修改和刪除,不使用資料庫,只在本地存放一個xml檔案。下面是User.xml檔案的格式,放在網站跟目錄中,本例只為實現操作xml的功能,所以登入密碼沒有加密,在實際應用中,你應該考慮這個問題。同時,這個檔案應該賦予寫入的許可權,這點比較容易疏漏。<?xml version="1.0"
Time of Update: 2017-02-27
本文介紹UdpClient 類在同步阻塞模式中為發送和接收不需連線的 UDP 資料包而提供了簡單的方法。因為 UDP 是一種不需連線的傳輸協議,所以你不需要在發送和接收資料之前建立任何遠程主機串連。你只需要按照下列方式來建立預設的遠程主機選項:使用遠程主機名稱和連接埠號碼作為參數來建立 UdpClient 類的執行個體。建立 UdpClient 類的執行個體然後調用 Connect 方法。你可以使用任何由 UdpClient 所提供的發送方法把資料發送給遠程裝置。然後使用 Receive
Time of Update: 2017-02-27
本文介紹在.Net中,System.Net.Sockets 命名空間為需要嚴密控制網路訪問的開發人員提供了 Windows Sockets (Winsock) 介面的託管實現。System.Net 命名空間中的所有其他網路訪問類都建立在該通訊端Socket實現之上,如TCPClient、TCPListener 和 UDPClient 類封裝有關建立到 Internet 的 TCP 和 UDP
Time of Update: 2017-02-27
本文介紹在.Net中,System.Net.Sockets 命名空間為需要嚴密控制網路訪問的開發人員提供了 Windows Sockets (Winsock) 介面的託管實現。System.Net 命名空間中的所有其他網路訪問類都建立在該通訊端Socket實現之上,如TCPClient、TCPListener 和 UDPClient 類封裝有關建立到 Internet 的 TCP 和 UDP
Time of Update: 2017-02-27
本文介紹TcpListener 類提供一些簡單方法,用於在阻止同步模式下偵聽和接受傳入串連請求。 可使用 TcpClient 或 Socket 來串連 TcpListener。 可使用 IPEndPoint、本地 IP 位址及連接埠號碼或者僅使用連接埠號碼,來建立 TcpListener。 可以將本地 IP 位址指定為 Any,將本地連接埠號碼指定為 0(如果希望基礎服務提供者為您分配這些值)。 如果您選擇這樣做,可在串連通訊端後使用 LocalEndpoint 屬性來標識已指定的資訊。使用
Time of Update: 2017-02-27
本文介紹TcpListener 類提供一些簡單方法,用於在阻止同步模式下偵聽和接受傳入串連請求。 可使用 TcpClient 或 Socket 來串連 TcpListener。 可使用 IPEndPoint、本地 IP 位址及連接埠號碼或者僅使用連接埠號碼,來建立 TcpListener。 可以將本地 IP 位址指定為 Any,將本地連接埠號碼指定為 0(如果希望基礎服務提供者為您分配這些值)。 如果您選擇這樣做,可在串連通訊端後使用 LocalEndpoint 屬性來標識已指定的資訊。使用
Time of Update: 2017-02-27
本文介紹在上一篇部落格中我說了,我將會介紹c#中使用Socket和TcpListener和UdpClient實現各種同步和非同步TCP和UDP伺服器,這些都是是我自己花了很多天的時間來總結的,這樣一來相信剛接觸c#網路編程的朋友們不會像以前的我一樣到處出找資料,到處調試。本次我介紹的是使用Socket來實現的同步的TCP伺服器,同步的TCP伺服器和第一篇裡面介紹的非同步TCP伺服器的區別就是,在Socket調用Accept的時候是否會阻塞。同步的TCP伺服器在接受到一個用戶端的請求的時候一般是開