爛 code 收集器//過度依賴全域變數

  1. 爛 code 收集器//過度依賴全域變數

爛 code 收集器//過度依賴全域變數

原文連結: https://darkblack02.blogspot.com/2018/05/code.html
移植時的最後更新日期: 2020-02-28T10:41:21.252+08:00

建構式初始化了一堆…全域變數? 全部都宣告成靜態變數!!! 可以查一下 global 前綴的變數有多少。 卻放在建構式裡初始化。


public partial class App : Application
{
public class IniInfo
{
//一堆屬性

public IniInfo()
{
//真正的建構式
}

private static string IniPlusReadString(string m_Section)
{
//讀取ini檔的設定
}
}

public static Component1 globalComponent1 ;
public static string globalAppImagePath =
System.IO.Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName) + @"\ObjectImages";
public static string globalAppRecipePath =
System.IO.Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName) + @"\Recipes";
public static string globalIniPath = // filename
public static SplashScreenWindow globalSplashScreenWindow;
public static Component2 globalEvent;
public static Log globalLog;
public static ClientHandle globalMessageHandle;
public static MessageLoadedHelper globalMessageLoadedHelper;
public static SingleHandle globalSingleHandle;
public static IniInfo globalIniInfo;
public static Dictionary<string queryindicatorsettinglobalresult.indicatorsettinginfo=""> globalIndicatorSettingDic =
new Dictionary<string queryindicatorsettinglobalresult.indicatorsettinginfo="">();
public static CultureInfo globalCultureInfo = null;

public App()
{
//初始化物件
}
}
不應該過渡依賴全域變數,應該要將該變數變成 class 裡的變數,並且若需要值的傳遞時,必須要透過 method 進行。 這樣 trace bug 也直覺,也更好防堵 bug 產生。 無言的聲音: 浪費了 c# 的物件導向…微軟的工程師,辛苦了…你們的辛苦寫的程式碼,完無沒有體現價值。