1. 程式人生 > >C#高階程式設計第三章讀書筆記

C#高階程式設計第三章讀書筆記

一,結構

1.結構struct是儲存線上程棧中,類是儲存在託管堆中,成員變數少的時候可以考慮使用結構

2.結構的成員變數不允許直接賦值,結構的建構函式不允許不帶參,實際上結構有一個預設的不帶參的建構函式,會把成員變數賦值,值型別為0,引用型別為null

3.結構和int一樣,不用new就可以建立物件,但是結構在讀取值之前必須要使用初始化,哪怕是呼叫不帶參的建構函式

4.結構不能繼承或被繼承,結構派生自System.ValueType,System.ValueType派生自System.Obiect,所以結果可使用Object下的方法

二,弱引用

1.弱引用允許建立和使用物件,但是垃圾回收器會回收掉他的記憶體

2.弱引用是使用WeakReference類建立的,Weakreference test=new WeakReference(new MyClass());,在使用這個類時必須判斷它是否存在if(test.Isalive){},返回的是Object物件,因此必須進行型別的強制轉換。

3.呼叫垃圾回收器

GC.Collect()

4.部分類

partial允許將類、結構、介面、方法放在不同的檔案中,類的其他修飾符作用在一個類上就是全域性的

5.靜態類不能夠被例項化

6. Object中Finalize()方法的使用,此方法在引用物件被作為垃圾回收時呼叫,如果物件有非託管資源的引用,就需要在這個方法下刪除引用

7.擴充套件方法:允許改變一個類但是不需要類的原始碼,可以增加一個方法,呼叫時使用類B的例項即可呼叫

    /// <summary>
    /// 在A底下增加了屬於B類的方法
    /// </summary>
    public static class A
    {
        public static void TestB(this B b, int x)
        {
            System.Diagnostics.Debug.WriteLine(b.ToString() + x);
        }
    }


相關推薦

C#高階程式設計讀書筆記

一,結構1.結構struct是儲存線上程棧中,類是儲存在託管堆中,成員變數少的時候可以考慮使用結構2.結構的成員變數不允許直接賦值,結構的建構函式不允許不帶參,實際上結構有一個預設的不帶參的建構函式,會把成員變數賦值,值型別為0,引用型別為null3.結構和int一樣,不用n

windows 程式設計 讀書筆記(上)

     孃的,今天晚上在陽臺做飯把水管一腳踢爆了,水流到下面的住戶的陽臺,讓個老孃們把我罵了一頓,本著做錯事的原則,我裝的很紳士還說了個對不起,擦,真是條純漢子,能屈能伸。    

C#高階程式設計(7版)讀書筆記(二)

  第二部分Visual Studio 第16章VS2010 Vs2010有WPF,MEF,WCF,WF,AJAX 條件斷點 Debug-Exceptions選單設定異常時操作 第17章部署 第三部分基礎 第18章程式集 程式集由描述它的程式集元資料、描述匯出型別和方

C#高階程式設計學習筆記-繼承

1.實現繼承:表示一個型別派生於另一個基型別,他擁有基型別的所有成員變數和方法,因此在需要給現有的型別增肌新的功能後者寫一些共享性的程式碼時很有用。介面繼承:只繼承了函式的簽名沒有整合其他的方法的實現2.C#不支援多重繼承,但是允許派生自多個介面3,把一個基類函式宣告為vir

[轉載]演算法精解(C語言描述) 3 讀書筆記

第3章 遞迴 1、基本遞迴 假設想計算整數n的階乘,比如4!=4×3×2×1。 迭代法:迴圈遍歷其中的每一個數,然後與它之前的數相乘作為結果再參與下一次計算。可正式定義為:n! = (n)(n-1)(n-2)…(1)。 遞迴法:將n!定義為更小的階乘形式。可以正式定義為:

JavaScript高階程式設計版學習筆記(一)之資料型別區分詳談

  null、NaN、undefined三者的區別是什麼?   在初次接觸到JavaScript的時候,傻傻的分不清null、NaN、undefined三者到底區別何在,在實際的專案開發中也因為這個問題而困惑久矣。針對這個問題,我特意查找了多方資料,在筆記本上做了詳細的分析記錄,但是由於紙質資料不便於攜帶、

CSAPP 讀書筆記

程式的機器級表示 AT&T與Intel格式的彙編程式碼 我們的表述是ATT(根據“AT&T”命名的, AT&T是運營貝爾實驗室多年的公 司)格式的彙編程式碼,這是GCC、 OBJDUMP和其他一些我們使用的工具的預設格式。 其他一些程式設計工具,包括Microsoft的工具,以及來

《Javascript 高階程式設計(版)》筆記0x8 OOP 理解物件

         ECMA-262 把物件定義為:“無序屬性的集合,其屬性可以包含基本值、物件或者函式。”嚴格來講,這就相當於說物件是一組沒有特定順序的值。物件的每個屬性或方法都有一個名字,而每個名字都對映到一個值。  

《Javascript 高階程式設計(版)》筆記0x9 OOP 建立物件

目錄  建立物件     工廠模式      建構函式模式       將建構函式當作函式        建構函式的問題  

《Javascript 高階程式設計(版)》筆記0xC BOM window 物件

目錄   window 物件     全域性作用域      視窗關係及框架       top         parent

《Javascript 高階程式設計(版)》筆記0xB 函式表示式

  目錄 遞迴 閉包     閉包與變數     關於this物件     記憶體洩漏 模仿塊級作用域 私有變數        特權方法(privil

《Javascript 高階程式設計(版)》筆記0xA OOP 繼承

  目錄 原型鏈      別忘記預設的原型     確定原型和例項的關係       instanceof 操作符       isPrototype

《Javascript 高階程式設計(版)》筆記0x7 引用型別(2)

目錄   Function 型別      沒有過載     函式宣告與函式表示式      作為值的函式       將一個函式作為另一個函

《Javascript 高階程式設計(版)》筆記0x6 引用型別(1)

目錄  Object型別 Array 型別     檢測陣列     轉換方法         toString(),valueOf()       &

《Javascript 高階程式設計(版)》筆記0x5 變數|作用域|記憶體

目錄   基本型別和引用型別的值    動態的屬性     複製變數值    傳遞引數    檢測型別  執行環境及作用域     &

《Javascript 高階程式設計(版)》筆記0x4 JavaScript基本概念(3)

目錄   語句   if語句   do-while語句   while語句   for語句   for-in語句   label語句   break和continue語句 &n

《Javascript 高階程式設計(版)》筆記0x3 JavaScript基本概念(2)

目錄   操作符     一元操作符     位操作符     布林操作符     乘性操作符     加性操作符     關係操作符

《Javascript 高階程式設計(版)》筆記0x2 JavaScript基本概念(1)

目錄 語法 變數 資料型別     typeof:     Undefined型別      Null型別     Boolean型別     Numbe

《Javascript 高階程式設計(版)》筆記0x1 JavaScript簡介

誕生         受網速限制,急需一種機制可以在客戶端完成輸入驗證。         Netscape:LiveScript-->JavaScript    

《Javascript 高階程式設計(版)》筆記0xD BOM location、navigator、screen、history

目錄 location 物件      查詢字串引數     位置操作          replace()        &