原创 C#中數組作爲參數傳遞的問題

原則:儘可能控制對數據的修改,如果可以預測某個數據不會或不應該被改變,就要對其控制,而不要期望使用這個數據的調用者不會改變其值。 如果參數在使用過程中被意外修改,將會帶來不可預知的結果,而且這種錯誤很難被檢查到,所以我們在設計方法

原创 C#中的表達式樹的淺解

表達式樹可以說是Linq的核心之一,爲什麼是Linq的核心之一呢?因爲表達式樹使得c#不再是僅僅能編譯成IL,我們可以通過c#生成一個表達式樹,將結果作爲一箇中間格式,在將其轉換成目標平臺上的本機語言。比如SQL。我們常用的Linq

原创 異步CTP(Async CTP)爲什麼那樣工作?

對異步CTP感興趣有很多原因。異步CTP使異步編程比以前更加容易了。它雖然沒有Rx強大,但是更容易學。異步CTP介紹了兩個新的關鍵字,async和await。異步方法(或Lambda表達式)必須返回void,Task或Task<TR

原创 C#中的foreach和yield

  1. foreach C#編譯器會把foreach語句轉換爲IEnumerable接口的方法和屬性。 foreach (Person p in persons) { Console.WriteLine(p);

原创 顯示實現接口

  接口定義了一系列的行爲規範,爲類型定義一種Can-Do的功能。例如,實現IEnumerable接口定義了GetEnumerator方法,用於獲取一個枚舉數,該枚舉數支持在集合上進行迭代,也就是我們常說的foreach。接口只是

原创 未將對象引用到實例

對象爲null時調用給對象的屬性或方法 “未將對象引用到實例”是很多像我一樣的初學者經常遇到的一個問題,常常令人煩惱不已,那麼這個問題是怎麼發生的呢?先給大家看一張圖,我們從這張圖入手來分析這個錯誤造成的原因。 可能很多人看

原创 C#多線程基礎,適合新手瞭解

一、創建線程   在整個系列文章中,我們主要使用Visual Studio 2015作爲線程編程的主要工具。在C#語言中創建、使用線程只需要按以下步驟編寫即可: 1、啓動Visual Studio 2016,新建一個控制檯應用程

原创 C#中的 具名參數 和 可選參數

  具名參數 和 可選參數 是 C# framework 4.0 出來的新特性。 一. 常規方法定義及調用 public void Demo1(string x, int y) { //do something

原创 數組爲什麼可以使用linq查詢

  問題引出   這視乎是個完全不必要進行討論的話題,因爲linq(這裏具體是linq to objects)本來就是針對集合類型的,數組類型作爲集合類型的一種當然可以使用了。不過我還是想寫一下,這個問題源於qq羣裏一位朋

原创 C# 批量生成隨機密碼,必須包含數字和字母,並用加密算法加密

  要求:密碼必須包含數字和字母 思路:1.列出數字和字符。 組成字符串 :chars         2.利用randrom.Next(int i)返回一個小於所指定最大值的非負隨機數。         3. 隨機取不小於

原创 神奇的Timer

  最近的一個項目有一些地方需要用到定時功能,在設計過程中,突然發現.net的Timer類居然還有很多我以前沒有用過的功能,這裏就跟大家分享一下 注:這裏的Timer類特指System.Threading.Timer類 情景1

原创 C# File類的操作

File類,是一個靜態類,主要是來提供一些函數庫用的。靜態實用類,提供了很多靜態的方法,支持對文件的基本操作,包括創建,拷貝,移動,刪除和打開一個文件。File類方法的參量很多時候都是路徑path。File的一些方法可以返回File

原创 有趣的網站-第二彈

1.預測您的死亡時間,通過輸入出生日期,選擇性別、BMI範圍(可以通過頁面下方輸入身高、體重計算出)、生活態度和是否抽菸,點擊查看按鈕就可以得出結果。   我測了我還能活52多年。。不過看着時間越來越少,心理感覺毛毛的。好恐怖

原创 淺談c#接口的問題,適合新手來了解

  這段時間的項目有用到接口,開始不是特別理解接口,只是單單知道接口定義非常簡單,甚至覺得這個接口只是多此一舉(個人開發的時候)。現在開始團隊開發,才發現接口原來是這麼的重要和便捷! 接下來就來談談我這段時間對接口使用的粗淺見解

原创 .net 反射訪問私有變量和私有方法

  以下爲本次實踐代碼: using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using