回顧:
1. 多型如何實現的?
過載和虛方法覆寫
2. 什麼情況用虛成員?
不確定的用途,留待子類擴充套件覆寫時
3. 什麼情況需要覆寫?
功能近似,不必要重新建立新方法時
4. 為什麼需要抽象類和抽象方法?
規劃乙個類,但當前無法或不必具體現實時
主要內容
1. object 類
所有的.net類都派生於system.object
2. 類包含
即包含型別,是在另乙個物件中做資料成員的物件型別
需要例項操作?
3. 類巢狀
是指乙個類完整的包含另乙個類
需要例項操作?
4. 匿名型別
var與new關鍵字一起使用時,可以建立匿名型別
匿名型別只是乙個繼承了object的,沒有名稱的類
該類的定義從初始化器中推斷,類似於隱式型別化的變數
需要例項操作?
5. 分部類
指同乙個類的**分布在多個檔案中
使用partial關鍵字
6. 擴充套件方法
擴充套件方法使您能夠向現有型別「新增」方法,而不需建立新的派生類,重新編譯或以其他方式修改原始型別
擴充套件方法是一種特殊的靜態方法,但可以像擴充套件型別上的例項方法一樣進行呼叫。
如果擴充套件方法與類中的某個方法同名,擴充套件方法就從來不會被呼叫。類中已有的例項方法優先。
注意,擴充套件類要寫在頂級類中,不能寫在巢狀類中,否則就成了事倍功半的事兒了。ok
下面貼我自已做的例項**:
三個類之一:
using system;
using system.collections.generic;
using system.linq;
using system.text;
namespace con19
set
}/// /// 以物件為引數的建構函式
///
///
public other(users us)
/// /// 方法:獲取使用者資訊
///
///
public string getu()
/// /// 建構函式
///
///
///
///
///
public users getuser(string s1,string s2,int i)
}/// /// 使用者資訊類
///
public class users
set
}/// /// add屬性
///
public string add
set
}/// /// age屬性
///
public int age
set
}/// /// 空建構函式
///
public users()
/// /// 帶引數的建構函式
///
///
///
///
public users(string s1, string s2, int a)
/// /// 以物件為引數的建構函式
///
///
public users(users u2)
/// /// 獲取使用者資訊的方法
///
///
public string getinfo()}}
三個類之二:
using system;
using system.collections.generic;
using system.linq;
using system.text;
namespace con19
set
}int age;
public int age
set }}
}
三個類之三:
using system;
using system.collections.generic;
using system.linq;
using system.text;
namespace con19}}
前台的呼叫
**:
using system;
using system.collections.generic;
using system.linq;
using system.text;
namespace con19
; users ue = new users(uuu.name, uuu.add, uuu.age);
console.writeline(ue.getinfo());
console.writeline("***************====應用在泛型中的匿名類的研究*************************====");
listfamily = new list,
new person ,
new person ,
new person ,
new person
};//這個地方不怎麼理解,希望有牛人解釋一下這個convertall方法
var converted = family.convertall(delegate(person person);}
);foreach (var person in converted)
is an adult? ",
person.name, person.isadult);
}console.writeline("********************==擴充套件方法*************************=");
//注意如何呼叫擴充套件方法,是通過被擴充套件類物件來呼叫的,而不是前面所寫的擴充套件類
string str = user.ux("李四", "南京", 33, "\n資訊很真實");
console.writeline(str);
console.readkey();}}
}
執行結果:
第十九章 事務
redis的事務是指將多個命令請求打包,一次性地,按順序執行的機制。通過multi exec watch等命令實現事務功能。19.1.1 事務的開始 multi命令的執行代表了乙個事務的開始,會將執行該命令的客戶端由非事務狀態切換成事務狀態 在客戶端狀態的flags屬性中開啟redis multi標...
第十九周作業
1 實現永久重定向,當使用者訪問 www.magedu.org 這個網域名稱時我想讓他跳轉到 www.magedu.com 的主頁面,請寫出配置過程 location 2 rewrite案例 判斷檔案是否存在,要求 當使用者訪問到公司 的時輸入了乙個錯誤的 url 可以將使用者重定向至 www.ma...
acm第十九次樹
一 樹及二叉樹1 樹的概念 樹的定義 一棵樹是由n n 0 個元素組成的有限集合,其中 每個元素稱為結點 node 有乙個特定的結點,稱為根結點或樹根 root 除根結點外,其餘結點能分成m m 0 個互不相交的有限集合t0,t1,t2,tm 1。其中的每個子集又都是一棵樹,這些集合稱為這棵樹的子樹...