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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

C#

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

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

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

讓我們來(lái)看一下革命后的string做了些什么?

打開(kāi)文件或網(wǎng)址

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

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

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

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

文件及目錄操作

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

?實(shí)現(xiàn)同樣簡(jiǎn)單,調(diào)用File及Directory類(lèi)。以下上面三個(gè)擴(kuò)展的實(shí)現(xiàn)。(當(dāng)然還可以實(shí)現(xiàn)更多文件及目錄操作,很簡(jiǎ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?????}

??還是感覺(jué)不過(guò)癮,想要?jiǎng)h除整個(gè)硬盤(pán)的文件,用上面的一個(gè)一個(gè)來(lái)也太麻煩了。也沒(méi)問(wèn)題,看下面:

執(zhí)行DOS命令

先看兩個(gè)簡(jiǎn)單的?

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

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

?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命令也會(huì)有異常發(fā)生,下面的實(shí)現(xiàn)可通過(guò)out參數(shù)返回錯(cuò)誤信息:

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?????}

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

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

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

執(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ù)庫(kù)操作。

總結(jié)?

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

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

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

總結(jié)

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

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

主站蜘蛛池模板: av导航网址 | 老牛影视av牛牛影视av | 色涩视频在线观看 | 视频在线观看免费 | 国产一区二区精品丝袜 | 高清欧美性猛交xxxx黑人猛交 | 久久国产成人 | 国产乱淫a∨片免费视频 | 99久久精品免费看国产免费软件 | 国产成人精品一区二区三区 | 国产在线1区 | 亚洲88av| 久久免费偷拍视频 | 精品久久9999 | 成人免费网站视频 | 欧美一级在线看 | 日本美女啪啪 | 伊人久久精品视频 | 日韩诱惑 | 成人精品免费看 | 欧美99热| 天天想你在线观看完整版高清 | 黄色在线观看视频网站 | 久久99视频 | xzjzjzjzjzj欧美大片 | 欧美性做爰大片免费 | 亚洲欧洲精品一区 | 五月天综合激情网 | 精品国产传媒 | 久久免费看少妇高潮v片特黄 | 一区二区av在线 | 日韩三级视频在线 | 后进极品白嫩翘臀在线视频 | www.蜜臀av.com| 日韩av在线免费 | 美妇av| 久久久性视频 | 中国美女囗交视频 | 亚洲av成人片无码 | 亚洲色图欧美激情 | 三级大片在线观看 | 在线国产一区二区 | 精品久久久久一区二区 | 视频1区2区 | 人人干网站 | 日韩美女一区二区三区 | 色射影院| 少妇高潮一区二区三区 | 国产视频一二三区 | 色中色av| 黄色小视频在线看 | 国产五十路 | 国产乱女淫av麻豆国产 | 一级作爱视频 | wwwxxxx在线观看 | 色屁屁影院www国产高清麻豆 | 波多野结衣欲乱上班族 | 香蕉久久一区二区三区 | 国产真人无遮挡作爱免费视频 | 欧美成人午夜精品免费 | 天堂中文资源在线 | 国产香蕉视频在线 | www在线播放 | 乱lun合集男男高h | 男女网站视频 | 国产精品女同一区二区 | 亚洲高清中文字幕 | 亚洲精品一区 | 亚洲一区小说 | 亚洲精品一区二区三区新线路 | 麻豆传媒在线视频 | 91亚洲精品国偷拍自产在线观看 | 少妇一夜三次一区二区 | 成人免费观看视频网站 | 亚洲色图17p | 亚州中文| 国产精品成人va在线观看 | 色综合久久久久综合体桃花网 | 最近更新中文字幕 | 日本xxxx高清 | 欧美国产日韩一区二区 | 成人wwwww免费观看 | 中文区中文字幕免费看 | 亚洲网站免费观看 | 99色国产 | 亚洲免费黄色片 | 久久综合婷婷 | 浪荡奴双性跪着伺候 | 久久九精品 | 一本之道高清无码视频 | 亚洲美女在线播放 | 97人人澡人人爽人人模亚洲 | 欧美视频一区在线 | 妖精视频一区二区 | 黄色三级视频在线观看 | 欧美系列一区二区 | 国产精品久久一区 | 国产高清一区二区 | 久久精品无码专区免费 |