我是C#的新手,需要帮助完成学校任务。我应该创建一个程序,在Visual Studio上使用Windows窗体提供工厂设计模式的示例。我一直在网上寻找帮助,但我使用的代码给了我错误。 displayResults是我的文本框的名称,但它不被识别。此外,当我去c#工厂设计模式winforms
protected void Page_Load (object sender, EventArgs e)
它不承认我的一些课程。
感谢您对此提供任何帮助或建议。如果这真的很明显,我非常新,很抱歉。
这里是我的所有代码:
namespace FactoryDesignPattern
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
abstract class Factory
{
public abstract Product GetProduct();
}
class ConcreteFactoryForProudct1 : Factory
{
public override Product GetProduct()
{
return new Product1();
}
}
class ConcreteFactoryForProudct2 : Factory
{
public override Product GetProduct()
{
return new Product2();
}
}
interface Product
{
void GetDetails();
}
class Product1 : Product
{
public void GetDetails();
displayResults.WriteLine("Product 1 details are: ");
}
class Product2 : Product
{
public void GetDetails();
displayResults.WriteLine("Product 2 details are: ");
}
protected void Page_Load (object sender, EventArgs e)
{
Factory[] objFactories = new Factory[2];
objFactories[0] = new ConcreteFactoryForProduct1();
objFactories[1] = new ConcreteFactoryForProduct2();
foreach (Factory objFactories in objFactories)
{
product objProduct = objFactory.GetProduct();
objProduct.GetDetails();
}
}
}
我想你会需要张贴在分配更多细节。这项任务的目标是什么。即你对工厂有什么成就?另外,请发布任何具体的错误消息。有一件事要注意:把'public'放在你的类定义之前。我认为这对你有帮助。 – DWright
将page_load中的所有代码移动到form1_load并删除page_load,您不需要它。为什么它应该是product2的一部分? GetDetails从未实现,displayResults是什么? –
抽象工厂模式已正确实施,因此您正处于正确的轨道上,涉及该部分练习 –