簡體   English   中英

Visual Studio C# VSTO:重構

[英]Visual studio C# VSTO: Refactoring

來自 Visual basic,我有點懷念 C# 中缺少的 With 語句,我正在尋找重構代碼的方法,使其不那么擁擠。

我有以下代碼:

Globals.Ribbons.RibbonMain.chkCalculation.Checked = (Globals.ThisAddIn.Application.Calculation == Microsoft.Office.Interop.Excel.XlCalculation.xlCalculationAutomatic);
Globals.Ribbons.RibbonMain.chkScreenUpdating.Checked = Globals.ThisAddIn.Application.ScreenUpdating;
Globals.Ribbons.RibbonMain.chkEvents.Checked = Globals.ThisAddIn.Application.EnableEvents;
Globals.Ribbons.RibbonMain.chkDisplayAlerts.Checked = Globals.ThisAddIn.Application.DisplayAlerts;

如何提取共同點以精簡代碼以使其更易讀?

我的想法是創建下面的 2 個變量,但我不知道我應該使用的變量類型。 有什么地方可以尋找變量類型嗎?

variableType R = Globals.Ribbons.RibbonMain
variableType A = Globals.ThisAddIn.Application

var應該可以正常工作,讓編譯器找出類型:

    var R = Globals.Ribbons.RibbonMain;
    var A = Globals.ThisAddIn.Application;
    
    R.chkCalculation.Checked = (A.Calculation == Microsoft.Office.Interop.Excel.XlCalculation.xlCalculationAutomatic);
    R.chkScreenUpdating.Checked = A.ScreenUpdating;
    R.chkEvents.Checked = A.EnableEvents;
    R.chkDisplayAlerts.Checked = A.DisplayAlerts;

感謝@madreflection 分享知識。

當我在多個地方使用這兩個變量時,我將它們提取為靜態變量。

using EXCEL = Microsoft.Office.Interop.Excel;

    internal class clsMacros
    {
        //GLOBAL VARIABLES
        static RibbonMain RIBBON = Globals.Ribbons.RibbonMain;
        static EXCEL.Application APPLICATION = Globals.ThisAddIn.Application;

        public static void GetStatus()
        {
            RIBBON.chkCalculation.Checked = (APPLICATION.Calculation == EXCEL.XlCalculation.xlCalculationAutomatic);
            RIBBON.chkScreenUpdating.Checked = APPLICATION.ScreenUpdating;
            RIBBON.chkEvents.Checked = APPLICATION.EnableEvents;
            RIBBON.chkDisplayAlerts.Checked = APPLICATION.DisplayAlerts;        
        }
    }

暫無
暫無

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

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