麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

C#提取方法重構(gòu)

2019-11-14 13:29:54
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

引用:https://msdn.microsoft.com/zh-CN/library/0s21cwxk.aspx

“提取方法”是一項(xiàng)重構(gòu)操作,提供了一種從現(xiàn)有成員中的代碼段創(chuàng)建新方法的便捷方式。

使用“提取方法”,可以通過(guò)從現(xiàn)有成員的代碼塊中提取一組代碼來(lái)創(chuàng)建新方法。提取出的新方法包含所選代碼,而現(xiàn)有成員中的所選代碼被替換為對(duì)新方法的調(diào)用。 通過(guò)將代碼段變?yōu)槠渥约旱姆椒?,可以快速而?zhǔn)確地重新組織代碼,以獲得更好的重用性和可靠性。

“提取方法”有以下優(yōu)點(diǎn):

  • 通過(guò)強(qiáng)調(diào)離散的可重用方法鼓勵(lì)最佳的編碼做法。

  • 鼓勵(lì)通過(guò)較好的組織獲得自記錄代碼。

    當(dāng)使用描述性名稱(chēng)時(shí),高級(jí)別方法可以像讀取一系列注釋一樣進(jìn)行讀取。

  • 鼓勵(lì)創(chuàng)建細(xì)化方法,以簡(jiǎn)化重載。

  • 減少代碼重復(fù)。

1、創(chuàng)建名為 ExtractMethod 的控制臺(tái)應(yīng)用程序,然后使用以下代碼示例替換 PRogram。

class A{    const double PI = 3.141592;    double CalculatePaintNeeded(double paintPerUnit, double radius)    {        // Select any of the following:        // 1. The entire next line of code.        // 2. The right-hand side of the next line of code.        // 3. Just "PI *" of the right-hand side of the next line        //    of code (to see the prompt for selection expansion).        // 4.  All code within the method body.        // ...Then invoke Extract Method.        double area = PI * radius * radius;        return area / paintPerUnit;    }}

2、選擇您要提取的代碼片段:

double area = PI * radius * radius;

3、在“重構(gòu)”菜單上,單擊“提取方法”。

出現(xiàn)“提取方法”對(duì)話(huà)框。

也可以鍵入鍵盤(pán)快捷鍵 Ctrl+R、Ctrl+M 來(lái)顯示“提取方法”對(duì)話(huà)框。

還可以右擊選定代碼,指向“重構(gòu)”,然后單擊“提取方法”來(lái)顯示“提取方法”對(duì)話(huà)框。

4、在“新方法名稱(chēng)”框中指定新方法的名稱(chēng),如 CircleArea

新方法簽名的預(yù)覽顯示在“預(yù)覽方法簽名”下。

5、單擊“確定”

備注:

使用“提取方法”命令時(shí),將在同一個(gè)類(lèi)中的源成員之后插入新方法。

分部類(lèi)型

如果類(lèi)是分部類(lèi)型,則“提取方法”將緊跟源成員之后生成新方法。 “提取方法”確定新方法的簽名,并在新方法中的代碼不引用實(shí)例數(shù)據(jù)時(shí)創(chuàng)建靜態(tài)方法。

泛型類(lèi)型參數(shù)

當(dāng)提取的方法具有不受約束的泛型類(lèi)型參數(shù)時(shí),除非已為該參數(shù)賦值,否則生成的代碼將不向該參數(shù)添加 ref 修飾符。 如果提取的方法將支持引用類(lèi)型作為泛型類(lèi)型實(shí)參,則應(yīng)該向方法簽名中的形參手動(dòng)添加 ref 修飾符。

匿名方法

如果嘗試提取匿名方法(該方法包括對(duì)在匿名方法之外聲明或引用的局部變量的引用)的一部分,則 Visual Studio 將警告您可能有語(yǔ)義更改。

當(dāng)匿名方法使用局部變量的值時(shí),將在執(zhí)行匿名方法時(shí)獲取該值。 將匿名方法提取到其他方法中時(shí),將在調(diào)用提取方法時(shí)獲取局部變量的值。

下面的示例闡釋這一語(yǔ)義更改。 如果執(zhí)行此代碼,則將向控制臺(tái)輸出 11。 如果使用“提取方法”將代碼注釋所標(biāo)記的代碼區(qū)域提取到其自己的方法中,然后執(zhí)行重構(gòu)后的代碼,則將向控制臺(tái)輸出 10。

class Program{    delegate void D();    D d;    static void Main(string[] args)    {        Program p = new Program();        int i = 10;        /*begin extraction*/            p.d = delegate { Console.WriteLine(i++); };        /*end extraction*/        i++;        p.d();    }}

若要解決此問(wèn)題,請(qǐng)使匿名方法中使用的局部變量成為類(lèi)的字段。


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 色交视频| 黄色网址在线播放 | 免费在线观看毛片视频 | 久久久成人一区二区免费影院 | 国产大片在线观看 | 欧美日韩亚洲成人 | 欧美巨根 | 国产精品麻豆91 | 亚洲草逼视频 | 亚洲骚图 | 日韩精品| 国产一区视频在线免费观看 | 黄色电影免费提供 | 逼片| 一本一本久久a久久精品综合小说 | 校花被肉干高h潮不断 | 亚洲国产成人一区 | 国产乱一区二区三区视频 | 欧美精品国产综合久久 | 国产正在播放 | 中国女人内谢69xxxx天美 | 久久久av亚洲男天堂 | 日韩视频一区二区三区四区 | 依依成人综合 | 国产精品自拍av | 久久久久久久爱 | 黄网站在线免费 | 黑色丝袜美美女被躁视频 | 免费观看高清视频网站 | 日韩美女电影 | av电影在线观看免费 | 日韩精品久久久久久久电影99爱 | 在线a亚洲视频播放在线观看 | 久久久久一本一区二区青青蜜月 | 久久久久久久高清 | 成人av一区二区免费播放 | 午夜av男人的天堂 | 日本成年免费网站 | 日本中文字幕网址 | 国产亚洲精品久久久久5区 综合激情网 | 国产精品久久久久一区二区 |