Effective C# Item32:儘可能實現小尺寸、高內聚的程式集

    我們在劃分程式集時,經常會犯的一個錯誤:在一個程式集中放入了太多的東西,導致程式集很難被重用。    一個好的程式集應該是“高內聚”的,所謂內聚,是指將程式集封裝為一個有意義、有職責的單位,它一般可以用一句話簡單的話來描述,例如.NET架構中的System.Collection程式集就為儲存一組相關的對象提供了資料結構。我們不能這麼說:MyApplication程式集提供了任何我們所需的功能,這樣的描述太過散漫了。   

Effiective C# Item1 : 使用屬性代替成員變數

    Item1:Always Use Properties Instead of Accessible Data Members    屬性是C#語言中一個很重要的特性,我們可以使用屬性對成員進行封裝。    從編譯器的角度來看,屬性就是針對成員變數兩個方法:get_xxx和set_xxx,這一點和Java是很像的,當我們在Java中定義個成員變數,然後通過重構產生相應的屬性時,對應的方法名就是get_xxx和set_xxx。   

Effective C# Item31:儘可能實現短小簡潔的方法

    我們推薦編寫短小簡潔的方法,而不是冗長複雜的方法,主要的原因在於.NET的JIT機制。   

Effective C# Item3:操作符as或is優於強制轉換

    C#是一種強型別的變成語言,我們一般情況下,不推薦大家對變數的類型進行轉換,但是針對代碼底層來說,為了對業務代碼提供儘可能多的支援,很多時候對方法參數的類型不會做強行限制,而只是將其置為System.Object,那麼業務在調用這些方法時,如果希望在方法體內執行使用者自訂的方法,就必須對參數的類型進行轉換,將System.Object轉換為使用者自己定義的類型。    關於類型轉換,C#有以下兩種方式:1.as或者is;2.強制類型轉換。我們推薦使用as或者is。   

Effective C# Item19:定義並實現介面優於繼承類型

    這個話題不僅僅是針對.NET的,在其他物件導向語言的環境中,例如Java,都會有介面和抽象類別,對於究竟是選擇介面還是抽象類別,已經有了太多的討論,包括設計模式中都有了一條設計原則:組合優於繼承,雖然這條原則和我們要討論話題沒有太大聯絡,但是可以看出在這方面如何做出選擇,並沒有一個萬能的解決方案,一般都要見招拆招,具體問題具體分析。  

Effective C# Item33:限制類型的可見度

    並不是所有人都需要看到所有的類型,因此我們建立的每一個類型也沒有必要設定為public,我們應該為每個類型提供最低的可見度,只要能夠達到目的就可以了。    Visual

Effective C# Item18:實現標準Dispose模式

    如果一個類型中包含了非託管的資源,那麼我們應該自己編寫釋放非託管資源的方法。.NET提供了一個標準的用於釋放資源的模式,叫做Dispose模式,在這種模式中,類型實現IDisposable介面,並提供一個終結器。這樣,正常流程下類型的使用者調用Dispose()方法來釋放資源,如果使用者忘記調用Dispose()方法, 那麼類型的終結器會作為最後的保障來釋放對象的非託管資源。   

Effective C# Item47:選擇安全的程式碼

    .NET運行時在設計之初,就堵住了遠程機器上惡意代碼滲透和執行的漏洞,但是一些分布式系統總要從遠程機器上下載並執行代碼。如果CLR不能完全信任一個程式集,它將會限制在其上可以操作的行為,這種機制被稱作代碼訪問安全(code access security,CAS),另一方面,CLR實現了基於角色的安全機制,在這種機制下,代碼執行與否要依賴於特定使用者帳號和許可權。    .NET是一個託管環境,它會確保在一定程度上的安全,.NET架構類庫中的大多數類型在安裝時都被賦予了完全的信任(通過.

To, Cc and Bcc

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,

分享C#原生ID(流水號)產生功能實現

    /// <summary>    ///     /// </summary>    public static class DataBaseGenerator    {        /// <summary>        ///

C#中擷取應用程式路徑的方法(集合)

碰到一個不在UI層操作檔案的情況,比如BLL層(商務邏輯層),DAL層(資料操作層),這時是沒有HttpContext對象的,最終找到一個解決方案:AppDomain.CurrentDomain.BaseDirectory,剛好得到網站的根目錄。想要更詳細的在下面:原文:http://blog.csdn.net/boyle0630/archive/2008/03/21/2202333.aspx string str1

C# 對XML的操作 及 C#的序列化

對於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"

C#判斷是否運行在偵錯模式下

很多情況下我們希望一些調試資訊不輸出,但又不至於用到trace和debug的一些功能,僅僅是包一下幾句話,非調試狀態就不運行,有這些用法using System.Diagnostics; class XY { [Conditional( "DEBUG ")] public static void DebugLog(string in_string) { Console.WriteLine(in_srting);

C#去除字串空格的幾種方法收藏

1.正規運算式:System.Text.RegularExpressions.Regex.Replace(str, "([ ]+)", "") --   str是輸入或要檢測的字串。2.使用字串內建的Replace方法:str.Replace(" ","")-------------  

c#繼承com

大概看了一下書,照做了一下,感覺功能上主要就是能實現一個事務的功能,其他的沒有看到什麼新鮮的東東。還有就是這個也能實現remoting那種功能, 可以電腦間通訊,不過書裡講的也不深,自己又懶得找資料看了,大概也就是明白了一個基本的實現和使用吧。對com+組件的設定可以在程式裡用屬性設定, 也可以在com+元件服務瀏覽器裡進行設定。下面是有組件和無組件的代碼有組件:using System;using System.Collections.Generic;using

C# 資料庫連接池 安全執行緒 單例模式 的實現

本文介紹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

一個很好的C#讀取CSV的實現

見:http://www.codeproject.com/KB/database/CsvReader.aspx作者自己是說由於要處理大量CSV檔案,發現OLEDB JET driver和正則的方法效果都不好,並且效率很低,同時使用string.split()方法為基礎的解析有很大的局限性等等,總之作者是要求能夠很好地理解逗號等分隔字元,去除每個項的前後空格等等等等,於是他自己實現了一套類,同oledb和正則比,效率有15倍的提升,並且測試達到了30M/s的讀取速度備份於此,感興趣的查看文頭連結

C#正則匹配、分組和替換

用兩個執行個體來示範吧1,有個項目引用WebService的,因為同時發在了幾台伺服器上,為了方便切換,我就要能動態去更改它的IP(只是IP不同,不是WebService不同),所以我只要替換其中的伺服器位址部分就可以了2,示範從查詢字串裡面提取想要的資料,以便把這些資料恢複到網頁上,類似asp.net的viewstate功能 private string testrex(Match m) { //組0,就是所有匹配,然後依次為各個括弧內的

淺談C#中的GET和SET訪問器

  我們在學習C#文法的屬性時,都要首先和GET,SET訪問器打交道,從英文的字面意思上理解,GET應該就是獲得什麼什麼,而SET應該是設定什麼什麼,那我們看一下,官方是怎麼定義這對訪問器的:get是讀取屬性時進行的操作,set是設定屬性時進行的操作。定義一個屬性如果只有get,這個屬性就是唯讀。同樣,只有set,屬性就是唯寫的,當然唯寫的屬性我覺的意義不是很大。 接下來我們通過一些代碼執行個體來接觸一下GET和SET訪問器  class Bank {private int

LINQ – 為C#開發的一種類似於SQL的語言

MSXML和ADO.NET使我們能夠遍曆和操作XML文檔,但它們都無法讓開發人員在編寫資料訪問作業碼時覺得舒服、自然。LINQ使資料訪問成為了.NET中的一個進階編程概念,它使得開發人員能夠完全依靠智能感知技術來建立型別安全的資料存取碼和編譯期的語法檢查。using語句是try...finally的簡潔表示。當所建立的類型實現了IDisposable時,則可以直接使用using。匿名方法(anonymous method)// Create a handler for a click

總頁數: 4314 1 .... 816 817 818 819 820 .... 4314 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.