原创 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