第一組:陳輝 string,List,Dictionary的Contains方法
1. string的Contains方法:
string s1 = "The quick brown fox jumps over the lazy dog";
string s2 = "fox";
bool b;
b = s1.Contains(s2);
如以上,返回的b的值是true,一般我們進行判斷時,s1的字符串要比s2長,就是判斷s2是否在s1里面。
2. List的Contains方法
應(yīng)用環(huán)境:從數(shù)據(jù)庫中查詢出滿足一系列條件的記錄,然后以對象的形式封裝到List中去。此時假設(shè)有兩個條件A和B,滿足A的記錄集和為ListA,滿足B的記錄集合為ListB,現(xiàn)在要將ListA和ListB合并為一個List,注意ListA和ListB中可能有重復的記錄(因為可能某條記錄即滿足條件A又滿足條件B),要過濾掉重復的記錄。
方法過程:我們假設(shè)List中存放的對象都是Order對象,屬性orderId用于標識一個唯一的Order對象。
List<order> list = new ArrayList<Order>();
if(ListA!=null){
Iterator it= ListA.iterator();
while(it.hasNext()){
list.add((Order)it.next());
}
}
if(ListB!=null){
Iterator it= ListB.iterator();
while(it.hasNext()){
Order o=(Order)it.next();
if(!list.contains(o))
list.add(o);
}
}
就是用來判斷List里面是否包含此元素,但是很多人說不靠譜,識別不準確。
3. Dictionary的Contains方法
我要用來取innerUserList關(guān)于innerUserAheadList的補集:事先我已經(jīng)得到了innerUserList和innerUserAheadList,前者包括后者,我們需要將后者從前者里面剔除
據(jù)說,Dictionary的ContainsKey()方法的用時是很短的,效率比較高。
Dictionary里面還有ContainsValue()和Contains()方法,用法類似,都比較好用。
第二組:徐晉 jquery模擬觸發(fā)事件
有時候,需要通過模擬用戶操作,來達到單擊的效果。例如在用戶進入頁面后,就觸發(fā)click事件,而不需要用戶去主動單擊。
在JQuery中,可以使用trigger()方法完成模擬操作。例如可以使用下面的代碼來觸發(fā)id為btn的按鈕的click事件。
$('#btn').trigger("click");
這樣,當頁面加載完畢后,就會立刻輸出想要的效果。也可以直接簡寫click(),來達到同樣的效果:
$('#btn').click();
-
觸發(fā)自定義事件
trigger()方法不僅能觸發(fā)瀏覽器支持的具有相同名稱的事件,也可以觸發(fā)自定義名稱的事件。例如為元素綁定一個“myClick”的事件,JQuery代碼如下:
$('#btn').bind("myClick", function(){
$('#test').append("<p>我的自定義事件.</p>");
});
想要觸發(fā)這個事件,可以使用以下代碼來實現(xiàn):
$('#btn').trigger("myClick");
-
傳遞數(shù)據(jù)
trigger(type[,data])方法有兩個參數(shù),第1個參數(shù)是要觸發(fā)的事件類型,第2個參數(shù)是要傳遞給事件處理函數(shù)的附加數(shù)據(jù),以數(shù)組形式傳遞。通常可以通過傳遞一個參數(shù)給回調(diào)函數(shù)來區(qū)別這次事件是代碼觸發(fā)的還是用戶觸發(fā)的。
下面是一個傳遞數(shù)據(jù)的例子。
$(function(){
$('#btn').bind("myClick", function(event, message1, message2){
$('#test').append( "<p>"+message1 + message2 +"</p>");
});
$('#btn').click(function(){
$(this).trigger("myClick",["我的自定義","事件"]);
}).trigger("myClick",["我的自定義","事件"]);
})
-
執(zhí)行默認操作
trigger()方法觸發(fā)事件后,會執(zhí)行瀏覽器默認操作。例如:
$("input").trigger("focus");
以上代碼不僅會觸發(fā)為<input>元素綁定的focus事件,也會使<input>元素本身得到焦點(這是瀏覽器的默認操作)。
如果只想觸發(fā)綁定的focus事件,而不想執(zhí)行瀏覽器默認操作,可以使用jQuery中另一個類似的方法——triggerHandler()方法。
$("input").triggerHandler("focus");
該方法會觸發(fā)<input>元素上綁定的特定事件,同時取消瀏覽器對此事件的默認操作,即文本框只觸發(fā)綁定的focus事件,不會得到焦點。
第三組: 面向?qū)ο蟮娜齻€基本特征
面向?qū)ο蟮娜齻€基本特征是:封裝、繼承、多態(tài)。
封裝
封裝最好理解了。封裝是面向?qū)ο蟮奶卣髦唬菍ο蠛皖惛拍畹闹饕匦浴?/p>
封裝,也就是把客觀事物封裝成抽象的類,并且類可以把自己的數(shù)據(jù)和方法只讓可信的類或者對象操作,對不可信的進行信息隱藏。
繼承
面向?qū)ο缶幊?(OOP) 語言的一個主要功能就是“繼承”。繼承是指這樣一種能力:它可以使用現(xiàn)有類的所有功能,并在無需重新編寫原來的類的情況下對這些功能進行擴展。
通過繼承創(chuàng)建的新類稱為“子類”或“派生類”。
被繼承的類稱為“基類”、“父類”或“超類”。
繼承的過程,就是從一般到特殊的過程。
要實現(xiàn)繼承,可以通過“繼承”(Inheritance)和“組合”(Composition)來實現(xiàn)。
在某些 OOP 語言中,一個子類可以繼承多個基類。但是一般情況下,一個子類只能有一個基類,要實現(xiàn)多重繼承,可以通過多級繼承來實現(xiàn)。
繼承概念的實現(xiàn)方式有三類:實現(xiàn)繼承、接口繼承和可視繼承。
- 實現(xiàn)繼承是指使用基類的屬性和方法而無需額外編碼的能力;
- 接口繼承是指僅使用屬性和方法的名稱、但是子類必須提供實現(xiàn)的能力;
- 可視繼承是指子窗體(類)使用基窗體(類)的外觀和實現(xiàn)代碼的能力。
在考慮使用繼承時,有一點需要注意,那就是兩個類之間的關(guān)系應(yīng)該是“屬于”關(guān)系。例如,Employee 是一個人,Manager 也是一個人,因此這兩個類都可以繼承 Person 類。但是 Leg 類卻不能繼承 Person 類,因為腿并不是一個人。
抽象類僅定義將由子類創(chuàng)建的一般屬性和方法,創(chuàng)建抽象類時,請使用關(guān)鍵字 Interface 而不是 Class。
OO開發(fā)范式大致為:劃分對象→抽象類→將類組織成為層次化結(jié)構(gòu)(繼承和合成) →用類與實例進行設(shè)計和實現(xiàn)幾個階段。
多態(tài)
……
詳情鏈接:http://blog.csdn.net/ztj111/article/details/1854611
第四組:李俊 前臺篩選
在對InnerUser表進行查詢時,由于后臺查詢方法調(diào)用的是已封裝的GetMySubUsers方法,而該查詢方法參數(shù)中沒有“角色”這個參數(shù)(InnerUser表含有“角色”字段)。現(xiàn)如今希望通過前臺輸入角色名將所有該角色的人員查出,既然后臺封裝方法改不了,那就在前臺對所有數(shù)據(jù)進行篩選,此時用到push()方法。具體代碼如下:
function getPilotUserList() {
laInnerUserService.GetInnerUserList ($scope.searchPara, $scope.page, function (data, success) {
If (! success) {
alert(data);
return false;
}
for (var i = 0; i < data.List.length; i++) {
var j = 0;
for (var m = 0; m < data.List[i].U_UserRoles.length; m++) {
if (data.List[i].U_UserRoles[m] == role.Tid) {
j++;
}
}
if (j > 0) {
$scope.list.push (data.List[i]);
}
}
console.log ($scope. List);
$scope.page = data.Page;
});
}
第五組:周倩宇 ASP.NET中DropDownList下拉框列表控件綁定數(shù)據(jù)的2種方法
1. 把Array數(shù)組綁到DropDownList
string[] Month =new string[7]{ "January", "February", "March", "April", "May", "June", "July" };
this.DropDownList1.DataSource = Month;
this.DropDownList1.DataBind();
這種方法只可以綁定一組數(shù)據(jù)到DropDownList,因為DropDownList可以綁定兩種數(shù)據(jù):1是DataTextField、2是DataValueField,所以第一種方法綁定后DataTextField的值==DataTextField值。
2. 把動態(tài)Array數(shù)組綁定到DropDownList]
ArrayList ar = new ArrayList();
for (int i = 1; i <=12; i++)
{
ar.Add(i+"月");
}
this.DropDownList2.DataSource = ar;
this.DropDownList2.DataBind();
本質(zhì)上就是將1到12月加到數(shù)組中,如下:
ArrayList ar = new ArrayList();
ar.Add("1月");
ar.Add("2月");
ar.Add("3月");
ar.Add("4月");
...
this.DropDownList2.DataSource = ar;
this.DropDownList2.DataBind();
這種方法的好處是通過ArrayList.Add的方法,可以實現(xiàn)動態(tài)添加元素的功能,比方說,有一個DataTable,我們要把DataTable中一行的數(shù)據(jù)讀出來添加到Arraylist當中。代碼如下:
ArrayList ar = new ArrayList();
DataTable dt=dataset.Tables[0]
foreach (DataRow dr in dt.Rows)
{
ar.Add(dr[0].ToString());
}
以上代碼從一個DataTable中通過foreach語句循環(huán)讀取Table中一行數(shù)據(jù)中第一個格的值添加到ArrayList當中。