日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一个显示页码用的helper。。。

發(fā)布時間:2023/12/10 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个显示页码用的helper。。。 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

沒想到這么不起眼的東西殺了我不少腦細胞……

在控制臺中測試沒發(fā)現(xiàn)啥問題,代碼風格什么的就先不管它了

?

public static class PageNumExt {public delegate void ToDo(long i);public delegate void PadToDo();public static void GeneratePageNum(this object o,long curr, ToDo cfixToDo, PadToDo padToDo, long fixLen = 2, long padding = 1){o.GeneratePageNum(curr, cfixToDo, cfixToDo, padToDo, fixLen, padding);}public static void GeneratePageNum(this object o,long curr, ToDo currTodo, ToDo cfixToDo, PadToDo padToDo, long fixLen = 2, long padding = 1){GeneratePageNum(o,curr, currTodo,1, long.MaxValue,cfixToDo, i => { },fixLen, cfixToDo,padding, padToDo,fixLen, curr,cfixToDo, i => { });}public static void GeneratePageNum(this object o,long curr, ToDo currToDo,long begin, long end,ToDo beginToDo, ToDo endToDo,long cfix, ToDo cfixToDo,long padding, PadToDo padToDo,long sfixBegin, long pfixEnd,ToDo sfbToDo, ToDo pfeToDo){long i = begin;if (begin < curr){beginToDo(begin);i++;var g1 = i + sfixBegin;var g3 = curr - cfix;var g2 = g3 - padding;if (g1 > g3)g1 = g3;for (; i < g1; i++)sfbToDo(i);if (i < g2){padToDo();i = g2 + 1;}elsefor (; i < g3; i++)cfixToDo(i);}for (; i < curr; i++)cfixToDo(i);currToDo(curr);i = curr + 1;var g = i + cfix;if (g > end)g = end;for (; i < g; i++)cfixToDo(i);if (end > curr){var g1 = end - pfixEnd;var g2 = g1 - padding;if (g < g2)padToDo();elsefor (; i < g1; i++)cfixToDo(i);if (i < g1)i = g1;for (; i < end; i++)pfeToDo(i);endToDo(end);}} } 參數(shù)解說:

curr - 當前頁碼

currToDO - 怎樣輸出當前頁碼

begin - 頁碼從多少開始

end - 頁碼到多少結束

beginToDo - 怎樣顯示起始頁碼

endToDo - 怎樣顯示結束頁碼

cfix - 當前頁的前后頁碼輸出多少個

cfixToDo - 當前頁前后頁碼怎樣輸出

padding - 所有沒有被涵蓋進其它參數(shù)的頁碼,如果出現(xiàn)次數(shù)超過這個參數(shù)的值,則完全省略掉

padToDo - 被省略掉的頁碼應該怎樣表現(xiàn)

sfixBegin - 從起始頁碼開始,延伸顯示多少個頁碼

pfixEnd - 到結束頁碼位置,延伸顯示多少個靠近結束位置的頁碼

sfbToDo - 起始頁碼附近的頁碼應該怎么樣表現(xiàn)

pfeToDo -結束頁碼附近的頁碼應該怎么樣表現(xiàn)

?

測試用的控制臺程序代碼:

for (var j = 1; j < 20; j++) {args.GeneratePageNum(j, i =>{Console.Write('[');Console.Write(i);Console.Write(']');Console.Write(' ');},2, 18,i =>{Console.Write('<');Console.Write(i);Console.Write(' ');},i =>{Console.Write(i);Console.Write('>');},2, i =>{Console.Write('#');Console.Write(i);Console.Write(' ');},1, () => Console.Write(".. "),2, 2, i =>{Console.Write('[');Console.Write(i);Console.Write(' ');}, i =>{Console.Write(i);Console.Write(']');Console.Write(' ');});Console.WriteLine(); }for (var j = 1; j < 10; j++) {args.GeneratePageNum(j, i =>{Console.Write('[');Console.Write(i);Console.Write(']');Console.Write(' ');}, i =>{Console.Write(i);Console.Write(' ');}, () =>{Console.Write(".. ");}, 2, 1);Console.WriteLine(); }

轉(zhuǎn)載于:https://www.cnblogs.com/NanaLich/archive/2010/07/08/page-number-generate-helper.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結

以上是生活随笔為你收集整理的一个显示页码用的helper。。。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。