簡體   English   中英

ReSharper是否具有“將初始化程序移動到構造函數”的反面?

[英]Does ReSharper have the inverse of “move initializer to constructor?”

ReSharper將提供將字段初始化程序移動到構造函數的方法:

在此處輸入圖片說明

我正在尋找一種逆轉過程的方法-將初始化從構造函數移動到字段初始化程序。

也就是說,從以下內容開始:

class C
{
    readonly int i;

    public C()
    {
        i = 42;
    }
}

結尾為:

class C
{
    readonly int i = 42;

    public C() { }
}

ReSharper支持嗎?

是的,您可以這樣做。

為了從這個起始位置開始:

class Program
{
        public Program()
        {
           int i = 42;
        }
} 

將光標放在int i = 42;的行上int i = 42; (您可能需要玩一些玩具,我相信只有在嘗試將光標放在i ,它才起作用),轉到Resharper- > Refactor- > Introduce Field

選擇字段初始化器,然后將字段設為只讀

結果:

class Program
{
        private readonly int _i = 42;

        public Program()
        {
        }
}

可以在此處找到更多信息。

您可以使用“結構搜索和替換”來實現。

這是適合您SSR模式

它適用於您的簡單示例,但可能需要進行修改以匹配更復雜的情況,甚至可能不支持它們。 無論如何玩。

要導入模板,請轉至ReSharper>管理選項 ,右鍵單擊現有圖層(如果需要,請預先創建一個新圖層),選擇“ 導入自”>“從URL導入”並在上方指定原始gist URL。

完成后,將出現一個新的代碼檢查,並帶有一個快速修復程序以將初始化移至該字段。

如有必要,請轉至ReSharper>選項>代碼檢查>自定義樣式以編輯樣式或配置檢查嚴重性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM