C 擴充套件方法,查詢運算子

2021-10-25 00:22:45 字數 1038 閱讀 8658

class mylist : ienumerable

ienumerator ienumerable.getenumerator()

}class program

return sum;

}static int mymax(mylist list)

return max;

}static void main(string args)

}//需求一:如果需要乙個 mylist2 類,其他方法不變,那麼**的重複率又會很高

//解決辦法:更改傳入型別 mylist 為介面型別:

static int mycount(ienumerablelist)

static int mymax(ienumerablelist)

//需求二:c#是物件導向程式設計,方法應該放在類中,而 mycount、mymax 是外接方法

//解決辦法:將方法放在類中

class mylist : ienumerable

ienumerator ienumerable.getenumerator()

public int mycount()

return sum;

}public int mymax()

return max;}}

static void main(string args)

//需求三:mylist 和 mylist2 中都需要設定函式,**重複率高並且無法封閉

//解決辦法:使用擴充套件方法

// 1、定義靜態類 2、定義靜態方法 3、使用this關鍵字指示例項化物件

//新建乙個mylist方法的靜態類

static class mylistfunc

return sum;

}public static int mymax(this mylist list)

return max;}}

//將型別改為介面型

public static int mycount(this ienumerablelist)

擴充套件運算子

三個點,主要是用來將陣列幻化為用逗號分隔的引數序列。合併陣列 與解構賦值結合 如果將擴充套件運算子用於陣列賦值,只能放在引數的最後一位,否則會報錯。將字串轉為真正的陣列 可以將類似陣列的物件轉為真正的陣列 map和set結構,generator函式 擴充套件運算子內部呼叫的是資料解構的iterato...

擴充套件運算子

首先點明,es6的新特性之擴充套件運算子 spread 就是三個點 和es6的可變引數形式一樣。擴充套件運算子是很強大的乙個運算子,它能簡化很多在es5中會比較繁雜的操作。對於這個運算子,概念性的東西不多,所以這裡我就簡明扼要的給出一些它的常用場景 1 可變引數。雖然可變引數嚴格說不是擴充套件運算子...

擴充套件運算子

使用擴充套件運算子 拷貝陣列。const a,b 1,2,3 a 1 b 2,3 bad const len items.length const itemscopy let i for i 0 i len i good const itemscopy items 1 結構賦值 物件的解構賦值用於從...