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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

c#扩展方法奇思妙用变态篇四:string 的翻身革命

發(fā)布時間:2025/3/13 C# 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c#扩展方法奇思妙用变态篇四:string 的翻身革命 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
string是各種編程語言中最基礎(chǔ)的數(shù)據(jù)類型,長期以來受盡其它類的壓迫,經(jīng)常被肢解(Substring、Split)、蹂躪(Join)...

?而現(xiàn)在string要“翻身鬧革命”了,它幾乎無所不能,可以為所欲為,令其它類心驚膽顫...

?

?讓我們來看一下革命后的string做了些什么?

?1. 打開文件或網(wǎng)址

1??????"c:\\t.txt".Open();
2??????"http://www.cnblogs.com/ldp615/".Open();

?怎么做到的呢?看擴(kuò)展,很簡單,直接調(diào)用調(diào)用了Process.Start函數(shù):

1?????public?static?void?Open(this?string?s)
2?????{
3?????????Process.Start(s);
4?????}

?單單打開個文件,竊取他人信息只是初步操作,string還可以修改、刪除、創(chuàng)建文件(或目錄)

?2. 文件及目錄操作

1?????@"C:\Directory".CreateDirectory();
2?????@"C:\Directory\readme.txt".WriteText("this?file?is?created?by?string!");
3?????@"C:\abc.txt".DeleteFile();

?實(shí)現(xiàn)同樣簡單,調(diào)用File及Directory類。以下上面三個擴(kuò)展的實(shí)現(xiàn)。(當(dāng)然還可以實(shí)現(xiàn)更多文件及目錄操作,很簡單,不再給出!)

?1?????public?static?void?CreateDirectory(this?string?path)
?2?????{
?3?????????Directory.CreateDirectory(path);
?4?????}
?5?????public?static?void?WriteText(this?string?path,?string?contents)
?6?????{
?7?????????File.WriteAllText(path,?contents);
?8?????}????????
?9?????public?static?void?DeleteFile(this?string?path)
10?????{
11?????????if(File.Exists(path))?File.Delete(path);
12?????}

??還是感覺不過癮,想要刪除整個硬盤的文件,用上面的一個一個來也太麻煩了。也沒問題,看下面:?

?3. 執(zhí)行DOS命令,先看兩個簡單的?

1?????string?output1?=?"del?c:\\t1.txt".ExecuteDOS();
2?????string?output2?=?"dir".ExecuteDOS();

?實(shí)現(xiàn)也用了Process類,如下:

?1?????public?static?string?ExecuteDOS(this?string?cmd)
?2?????{
?3?????????Process?process?=?new?Process();
?4?????????process.StartInfo.FileName?=?"cmd.exe";
?5?????????process.StartInfo.UseShellExecute?=?false;
?6?????????process.StartInfo.RedirectStandardInput?=?true;
?7?????????process.StartInfo.RedirectStandardOutput?=?true;
?8?????????process.StartInfo.RedirectStandardError?=?true;
?9?????????process.StartInfo.CreateNoWindow?=?true;
10?????????process.Start();
11?????????process.StandardInput.WriteLine(cmd);
12?????????process.StandardInput.WriteLine("exit");
13?????????return?process.StandardOutput.ReadToEnd();
14?????}

?DOS命令也會有異常發(fā)生,下面的實(shí)現(xiàn)可通過out參數(shù)返回錯誤信息:

ExecuteDOS
?1?????public?static?string?ExecuteDOS(this?string?cmd,?out?string?error)
?2?????{
?3?????????Process?process?=?new?Process();
?4?????????process.StartInfo.FileName?=?"cmd.exe";
?5?????????process.StartInfo.UseShellExecute?=?false;
?6?????????process.StartInfo.RedirectStandardInput?=?true;
?7?????????process.StartInfo.RedirectStandardOutput?=?true;
?8?????????process.StartInfo.RedirectStandardError?=?true;
?9?????????process.StartInfo.CreateNoWindow?=?true;
10?????????process.Start();
11?????????process.StandardInput.WriteLine(cmd);
12?????????process.StandardInput.WriteLine("exit");
13?????????error?=?process.StandardError.ReadToEnd();
14?????????return?process.StandardOutput.ReadToEnd();
15?????}

?有了這個擴(kuò)展,格式化硬盤、關(guān)機(jī)、重啟都不在話下!

1?????"format?c:".ExecuteDOS();
2?????"shutdown?-s".ExecuteDOS();
3?????"shutdown?-r".ExecuteDOS();

?以上對付一般用戶的電腦足夠了,可但對程序員的電腦,他們居然把信息放進(jìn)了數(shù)據(jù)庫!同樣有辦法!

?4. 執(zhí)行SQL

1?????DbConnection?conn?=?
2?????int?count?=?"select?count(*)?from?Girlfriends".ExecuteScalar(conn).Cast<int>();

?參考實(shí)現(xiàn)如下:??

?1?????public?static?object?ExecuteScalar(this?string?sql,?DbConnection?conn)
?2?????{
?3?????????object?result;
?4?????????using?(DbCommand?cmd?=?conn.CreateCommand())
?5?????????{
?6?????????????cmd.Connection?=?conn;
?7?????????????cmd.CommandText?=?sql;
?8?????????????cmd.CommandType?=?System.Data.CommandType.Text;
?9?????????????conn.Open();
10?????????????result?=?cmd.ExecuteScalar();
11?????????????conn.Close();
12?????????}
13?????????return?result;
14?????}

?還有Cast擴(kuò)展:

1?????public?static?T?Cast<T>(this?object?obj)
2?????{
3?????????return?(T)obj;
4?????}

?現(xiàn)在可以執(zhí)行了。結(jié)果是*** ?同樣還可以實(shí)現(xiàn)更多數(shù)據(jù)庫操作。

?string還可以做更多更多事情,只要你支持它!但不要給它太多太大的權(quán)力,萬一哪天比你強(qiáng)大了...

?(改)變(形)態(tài)篇 文章,僅供開拓思路,實(shí)際項(xiàng)目慎用!

c#擴(kuò)展方法奇思妙用》系列文章已有11篇,以后還會陸續(xù)發(fā)表一些,敬請關(guān)注!

轉(zhuǎn)載于:https://www.cnblogs.com/China-Dragon/archive/2010/05/12/1733501.html

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的c#扩展方法奇思妙用变态篇四:string 的翻身革命的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 久久精品国产欧美亚洲人人爽 | 九一福利视频 | 精品欧美一区二区精品久久 | 中文字幕一区二区人妻痴汉电车 | 久久天堂影院 | 激情小说中文字幕 | 国产精品偷伦视频免费观看了 | 成品人视频ww入口 | 黄色av电影网站 | 国产精品一区二区欧美 | 久久国产一| 宅男视频在线免费观看 | 亚洲欧洲国产精品 | 朝鲜美女黑毛bbw | 奇米狠狠777| 亚洲精品精品 | 色香蕉在线视频 | 91视频官网 | 哈利波特3在线观看免费版英文版 | 性久久久久久 | 日韩免费在线观看 | 免费在线观看日韩av | 亚洲黄色一级 | 亚洲高清视频在线 | 粗大黑人巨茎大战欧美成人 | 美女福利在线 | 亚洲国产精品无码久久 | 在线看一区二区 | 一级做a爰片久久毛片潮喷 天天透天天干 | 久久短视频| 澳门黄色网 | 免费成人美女在线观看. | 欧美高清视频在线观看 | 日本一区二区在线看 | 亚洲天堂视频网 | 久草热在线视频 | 欧美性猛交xxxx黑人猛交 | аⅴ天堂中文在线网 | 成人三级图片 | 手机av在线免费 | 免费黄视频网站 | 丝袜熟女一区二区 | 500部大龄熟乱视频 亚洲乱码精品 | 在线视频观看 | 人妖交videohd另类 | 美国少妇性做爰 | 久久麻豆精品 | a级黄色小视频 | 老司机成人网 | 欧美黄色a级片 | 亚州黄色网址 | 免费观看黄色的网站 | 久久久久久久久久网 | 草逼网站 | 中文字幕av网| a天堂在线视频 | 一区二区三区国产av | 欧美大白屁股 | 超碰在线免费观看97 | 波多野吉衣一区二区三区 | 国产精品xxx在线观看www | 最新黄色av网址 | 乱子伦视频在线看 | 男人av网 | 亚洲黄色第一页 | 1024手机在线观看 | 蜜桃臀av在线 | 日本xxxx色| 超碰不卡 | 久久综合五月 | 国产97免费视频 | 二男一女一级一片 | 影音先锋亚洲一区 | 嫩草网站 | 国产男人天堂 | 中文字幕在线1 | 亚洲av第一成肉网 | 国产福利资源在线 | 毛茸茸日本熟妇高潮 | 日产精品久久久久久久蜜臀 | 国产后入又长又硬 | 国产日韩欧美日韩大片 | 久久综合色88 | 深夜免费福利视频 | 成人第四色 | 国产精品嫩草影院桃色 | 久久国内偷拍 | 国产一线在线观看 | 欧美成人性生活片 | 小日子的在线观看免费第8集 | 体感预报日剧 | 被黑人啪到哭的番号922在线 | 国产亚洲精品久久久久久久 | 色爽 av| 三上悠亚在线观看一区二区 | 国产jjizz一区二区三区视频 | 激情亚洲网| 91久久久久久久久久久久 | 三级全黄做爰在线观看 |