buaa21 / summer2020

软件学院《程序设计实践》2020小学期仓库
40 stars 8 forks source link

c#重构mainwindow,新建mainwindow后的数据独立问题 #259

Closed Ocean326 closed 3 years ago

Ocean326 commented 3 years ago

如题,我在public partial class MainWindow : Window中声明了一个数据集 public class SettingData { public static int IsOpen = 1; public static int IsTop = 0; public static int IsDeleted = 0; public static DateTime CreateTime; public static string SavePath = null; public static int ThemeColor = 1; public static DateTime LatestDate; } 然后又重构了mainwindow函数, public MainWindow() public MainWindow(DataRow dataRow) public MainWindow(string SavePath ) 发现在其中一个窗口中修改参数时会影响其他窗口中的参数,请问如何实现窗口间的参数独立?

crclz commented 3 years ago

建议搜索static关键词的意思。大概就是全局的效果。

解决方案:

  1. 去掉static:

    public class SettingData
    {
    public int IsOpen = 1;
    public int IsTop = 0;
    public int IsDeleted = 0;
    public DateTime CreateTime;
    public string SavePath = null;
    public int ThemeColor = 1;
    public DateTime LatestDate;
    }
  2. 让每一个Window都拥有独立的SettingData成员。(为每一Window创建独立的SettingData成员)

Ocean326 commented 3 years ago

那怎么创建独立的SettingData成员呢(在一个mainwindowclass里?

crclz commented 3 years ago
class XXXX
{
  public SettingData Setting = new SettingData();
  ...
}

这是面向对象的基础知识