Time of Update: 2018-12-06
我們在劃分程式集時,經常會犯的一個錯誤:在一個程式集中放入了太多的東西,導致程式集很難被重用。 一個好的程式集應該是“高內聚”的,所謂內聚,是指將程式集封裝為一個有意義、有職責的單位,它一般可以用一句話簡單的話來描述,例如.NET架構中的System.Collection程式集就為儲存一組相關的對象提供了資料結構。我們不能這麼說:MyApplication程式集提供了任何我們所需的功能,這樣的描述太過散漫了。
Time of Update: 2018-12-06
Item1:Always Use Properties Instead of Accessible Data Members 屬性是C#語言中一個很重要的特性,我們可以使用屬性對成員進行封裝。 從編譯器的角度來看,屬性就是針對成員變數兩個方法:get_xxx和set_xxx,這一點和Java是很像的,當我們在Java中定義個成員變數,然後通過重構產生相應的屬性時,對應的方法名就是get_xxx和set_xxx。
Time of Update: 2018-12-06
我們推薦編寫短小簡潔的方法,而不是冗長複雜的方法,主要的原因在於.NET的JIT機制。
Time of Update: 2018-12-06
C#是一種強型別的變成語言,我們一般情況下,不推薦大家對變數的類型進行轉換,但是針對代碼底層來說,為了對業務代碼提供儘可能多的支援,很多時候對方法參數的類型不會做強行限制,而只是將其置為System.Object,那麼業務在調用這些方法時,如果希望在方法體內執行使用者自訂的方法,就必須對參數的類型進行轉換,將System.Object轉換為使用者自己定義的類型。 關於類型轉換,C#有以下兩種方式:1.as或者is;2.強制類型轉換。我們推薦使用as或者is。
Time of Update: 2018-12-06
這個話題不僅僅是針對.NET的,在其他物件導向語言的環境中,例如Java,都會有介面和抽象類別,對於究竟是選擇介面還是抽象類別,已經有了太多的討論,包括設計模式中都有了一條設計原則:組合優於繼承,雖然這條原則和我們要討論話題沒有太大聯絡,但是可以看出在這方面如何做出選擇,並沒有一個萬能的解決方案,一般都要見招拆招,具體問題具體分析。
Time of Update: 2018-12-06
並不是所有人都需要看到所有的類型,因此我們建立的每一個類型也沒有必要設定為public,我們應該為每個類型提供最低的可見度,只要能夠達到目的就可以了。 Visual
Time of Update: 2018-12-06
如果一個類型中包含了非託管的資源,那麼我們應該自己編寫釋放非託管資源的方法。.NET提供了一個標準的用於釋放資源的模式,叫做Dispose模式,在這種模式中,類型實現IDisposable介面,並提供一個終結器。這樣,正常流程下類型的使用者調用Dispose()方法來釋放資源,如果使用者忘記調用Dispose()方法, 那麼類型的終結器會作為最後的保障來釋放對象的非託管資源。
Time of Update: 2018-12-06
.NET運行時在設計之初,就堵住了遠程機器上惡意代碼滲透和執行的漏洞,但是一些分布式系統總要從遠程機器上下載並執行代碼。如果CLR不能完全信任一個程式集,它將會限制在其上可以操作的行為,這種機制被稱作代碼訪問安全(code access security,CAS),另一方面,CLR實現了基於角色的安全機制,在這種機制下,代碼執行與否要依賴於特定使用者帳號和許可權。 .NET是一個託管環境,它會確保在一定程度上的安全,.NET架構類庫中的大多數類型在安裝時都被賦予了完全的信任(通過.
Time of Update: 2018-12-06
You should always make sure you e-mail the right people, in the right way. The To, Cc and Bcc fields allow you to indicate how your message should be read by the people that receive it. The To field is for people that the message directly affects,
Time of Update: 2018-12-06
/// <summary> /// /// </summary> public static class DataBaseGenerator { /// <summary> ///
Time of Update: 2018-12-06
碰到一個不在UI層操作檔案的情況,比如BLL層(商務邏輯層),DAL層(資料操作層),這時是沒有HttpContext對象的,最終找到一個解決方案:AppDomain.CurrentDomain.BaseDirectory,剛好得到網站的根目錄。想要更詳細的在下面:原文:http://blog.csdn.net/boyle0630/archive/2008/03/21/2202333.aspx string str1
Time of Update: 2018-12-06
對於XML:SysProperty.xml<?xml version="1.0" encoding="utf-8"?><SysProperty><SysContext><NekiProperty propertyName="databaseName" propertyValue="PMSDB" /><NekiProperty propertyName="databaseIP" propertyValue="192.168.1.186"
Time of Update: 2018-12-06
很多情況下我們希望一些調試資訊不輸出,但又不至於用到trace和debug的一些功能,僅僅是包一下幾句話,非調試狀態就不運行,有這些用法using System.Diagnostics; class XY { [Conditional( "DEBUG ")] public static void DebugLog(string in_string) { Console.WriteLine(in_srting);
Time of Update: 2018-12-06
1.正規運算式:System.Text.RegularExpressions.Regex.Replace(str, "([ ]+)", "") -- str是輸入或要檢測的字串。2.使用字串內建的Replace方法:str.Replace(" ","")-------------
Time of Update: 2018-12-06
大概看了一下書,照做了一下,感覺功能上主要就是能實現一個事務的功能,其他的沒有看到什麼新鮮的東東。還有就是這個也能實現remoting那種功能, 可以電腦間通訊,不過書裡講的也不深,自己又懶得找資料看了,大概也就是明白了一個基本的實現和使用吧。對com+組件的設定可以在程式裡用屬性設定, 也可以在com+元件服務瀏覽器裡進行設定。下面是有組件和無組件的代碼有組件:using System;using System.Collections.Generic;using
Time of Update: 2018-12-06
本文介紹3種安全執行緒模式1,lock2,Mutex3,MethodImpl 以前寫的一個MYSQL資料庫連接池ConnectionPool.CSusing System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;using System.Threading;using MySql.Data.MySqlClient;using
Time of Update: 2018-12-06
見:http://www.codeproject.com/KB/database/CsvReader.aspx作者自己是說由於要處理大量CSV檔案,發現OLEDB JET driver和正則的方法效果都不好,並且效率很低,同時使用string.split()方法為基礎的解析有很大的局限性等等,總之作者是要求能夠很好地理解逗號等分隔字元,去除每個項的前後空格等等等等,於是他自己實現了一套類,同oledb和正則比,效率有15倍的提升,並且測試達到了30M/s的讀取速度備份於此,感興趣的查看文頭連結
Time of Update: 2018-12-06
用兩個執行個體來示範吧1,有個項目引用WebService的,因為同時發在了幾台伺服器上,為了方便切換,我就要能動態去更改它的IP(只是IP不同,不是WebService不同),所以我只要替換其中的伺服器位址部分就可以了2,示範從查詢字串裡面提取想要的資料,以便把這些資料恢複到網頁上,類似asp.net的viewstate功能 private string testrex(Match m) { //組0,就是所有匹配,然後依次為各個括弧內的
Time of Update: 2018-12-06
我們在學習C#文法的屬性時,都要首先和GET,SET訪問器打交道,從英文的字面意思上理解,GET應該就是獲得什麼什麼,而SET應該是設定什麼什麼,那我們看一下,官方是怎麼定義這對訪問器的:get是讀取屬性時進行的操作,set是設定屬性時進行的操作。定義一個屬性如果只有get,這個屬性就是唯讀。同樣,只有set,屬性就是唯寫的,當然唯寫的屬性我覺的意義不是很大。 接下來我們通過一些代碼執行個體來接觸一下GET和SET訪問器 class Bank {private int
Time of Update: 2018-12-06
MSXML和ADO.NET使我們能夠遍曆和操作XML文檔,但它們都無法讓開發人員在編寫資料訪問作業碼時覺得舒服、自然。LINQ使資料訪問成為了.NET中的一個進階編程概念,它使得開發人員能夠完全依靠智能感知技術來建立型別安全的資料存取碼和編譯期的語法檢查。using語句是try...finally的簡潔表示。當所建立的類型實現了IDisposable時,則可以直接使用using。匿名方法(anonymous method)// Create a handler for a click