【发布时间】:2012-11-07 21:56:58
【问题描述】:
所以这个特定的话题已经被打死了;但显然我的迭代要么不是选择的方法,要么不实用。
目标是创建一个 Windows 窗体和一个 Web 窗体。这两种形式;在单独的类中设置属性。然后其他类引用容器;这样,随着界面的变化,功能也会发生变化,而无需大量重新编码。
Windows 窗体 ---> 容器 被这些引用:1 类、2 类、3 类
我是这样处理的: 表格:
private Some.Reference.ToClass.Container _container;
public void Method(Some.Reference.ToClass.Container Container)
{
_container = Container;
}
private void button_click(object sender, EventArgs e)
{
_container.Name = textbox.Text (or some other component)
}
类:“容器”
public Name { get; set; }
要引用的类或表单:
Class WhateverName
{
private string REFERENCE;
private Some.Reference.ToClass.Container _container;
public void Method(Some.Reference.ToClass.Container Container)
{
_container = Container;
}
public void NewMethod()
{
REFERENCE = _container.Name;
}
}
它一直没有设置;它声明它是一个空对象。我错过了什么?任何帮助,将不胜感激。甚至是一个很好的教程供我比较学习;或者找到它不起作用的原因也可以。
【问题讨论】:
-
当你说“它一直没有设置”.. 什么没有具体设置?这是经典的 MVP 风格的东西..
-
它说“System.NullReferenceException {“对象引用未设置为对象的实例。”}这很奇怪;因为我正在引用它。至少我认为我基于该代码以上。
-
我没有看到任何构造函数调用。您的调用代码是否确保在 button_Click() 和 NewMethod() 运行之前通过“方法”设置容器?
-
在两个按钮上;表单和类之一。
-
@greg:请注意,除非调用 Method(),否则 _container 为 null,传入容器实例。如果在 _container 仍然为空时调用 button_Click(),您将得到您描述的异常。至少将调用包装在 'if(_container != null)'
标签: c# forms class containers