C# 从类调用方法和变量的最佳实践
我有以下设置,我想知道我所做的是不是最好的方法:C# 从类调用方法和变量的最佳实践,c#,class,C#,Class,我有以下设置,我想知道我所做的是不是最好的方法: Project1 //reusable code and controls mainclass.cs usercontrol1.xaml usercontrol2.xaml Project2 //referencing Project1 mainwindow.xaml //containing usercontrol1.xaml and usercontrol2.xaml Project1包含在其他项目中使用的
Project1 //reusable code and controls
mainclass.cs
usercontrol1.xaml
usercontrol2.xaml
Project2 //referencing Project1
mainwindow.xaml //containing usercontrol1.xaml and usercontrol2.xaml
Project1包含在其他项目中使用的类和用户控件,例如Project2。
在初始化Project2中的mainwindow时,我创建了一个mainclass的新实例,并将其作为变量传递给usercontrols,同时也将usercontrols作为变量传递给mainclass
通过这种方式,我可以从main类访问usercontrols中的所有公共方法和变量,反之亦然。这是一个好方法吗
public partial class MainWindow : Window
{
public MainClass MC = new MainClass();
public MainWindow()
{
InitializeComponent();
MC.usercontrol1 = this.usercontrol1;
MC.usercontrol2 = this.usercontrol2;
usercontrol1.mainClass = MC;
usercontrol2.mainClass = MC;
}
...
我知道,如果通过事件来完成,这一部分会更合适,但是我需要在类和usercontrols之间交叉访问的方法和变量的数量非常多,而且这样做似乎很好
谢谢 既然所有这些类都在同一个项目中,为什么不在
main类中设置构造函数呢
public MainClass(usercontrol1 uc1, usercontrol2 uc2)
{
uc1.mainClass = this;
uc2.mainClass = this;
this.usercontrol1 = uc1;
this.usercontrol2 = uc2;
}
那么
否则,我不确定您到底想做什么。循环依赖是不好的,紧密绑定的类也是不好的,因为它们打破了开闭原则
我不确定您想要完成什么,但我建议使用另一个类来编写所有三个类,或者如果可以的话使用事件。我不会称之为“最佳实践”。正如您所说,最佳实践是使用事件向感兴趣的订阅者提供信息,而不是将控件和逻辑紧密绑定在一起。另外,将控件数据绑定到模型类,这样就不必“共享”任何属性。不要说你在做什么是行不通的,但这不是“最佳实践”方式。
public partial class MainWindow : Window
{
public MainClass MC = new MainClass(this.usercontrol1, this.usercontrol2);
public MainWindow()
{
InitializeComponent();
}
...