【问题标题】:How to pass instance of a object from one class to another in C#?如何在 C# 中将对象的实例从一个类传递到另一个类?
【发布时间】:2021-09-13 09:11:27
【问题描述】:

假设我在一个类中创建了一个 Winforms UI 类实例, 现在我想访问那个 UI 类的实例,以对另一个类的方法隐藏它。

我目前正在创建 UI 类的静态属性,并将实例存储在第一个类的该属性中,并从另一个类访问该静态属性以获取相同的实例。但这似乎非常无效,因为对于我需要创建不同属性的每个数据传递。

还有其他更好的方法可以将在一个类中创建的类的实例直接传递给 C# 中的另一个类吗?

【问题讨论】:

  • 一般来说,您可能希望避免这种情况。但是如果没有更多细节就很难说。您可能想要扭转流程(“告诉,不要问”):如果您需要在该 UI 上显示某些内容,您应该传递数据,而不是 UI 组件。
  • @Fildor 我需要该对象的实例来询问“ UI_instance.Hide( ); ”您如何建议我从其他类..执行时间中分辨出来?
  • 在这种情况下,我会说这实际上是父母的担忧。所以,你会为父级做/拥有类似 ViewModel 的东西,在其中设置一个开关 有一个方法 HideXY() 或类似的东西。也许它可以由回调或事件触发......确实有很多可能性,但是将组件暴露在“外部”有一些味道。

标签: c# oop


【解决方案1】:

我不确定我是否正确地回答了你的问题,我会在类中使用静态构造函数。看看这个例子: https://www.c-sharpcorner.com/article/static-constructor-in-C-Sharp-and-their-usages/

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2016-09-06
  • 1970-01-01
  • 1970-01-01
  • 2023-02-08
  • 1970-01-01
  • 2023-01-25
  • 2013-04-12
  • 1970-01-01
相关资源
最近更新 更多