我正在尝试为我正在制作的类创建一个设置,因此在创建它时可以为其设置一个管理器类,并且可能需要通过接口调用该类中的函数
这些调用并不总是需要的,并且管理器可能并不总是调用这个类的类,因此简单的返回值并从管理器类中使用它是不符合要求的。
我想做的是遵循代码。(试图尽可能多地去除不必要的东西)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
interface Itester
{
void LoadTest();
}
public partial class Form1 : Form, Itester
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
World testWorld = new World();
testWorld.SetManager(this);
testWorld.InitializeWorld();
}
void Itester.LoadTest()
{
//random action I want run
label1.Text = "Ran LoadTest()";
}
}
public class World
{
Itester worldManager;
public World()
{
InitializeWorld();
}
private void InitializeWorld()
{
worldManager.LoadTest();
}
public void SetManager(Itester test)
{
worldManager = test;
}
}
}
我基于它得到这个错误。该错误指的是“世界级的公共空白”
错误 1 可访问性不一致:参数类型“WindowsFormsApplication1.Itester”的可访问性低于方法“WindowsFormsApplication1.World.SetManager(WindowsFormsApplication1.Itester)”XYZ 位置 Form1.cs 316 21 Feudal World
我所期望的就是这样。
Form1 类创建 World Class 的本地实例,然后运行它的构造函数(什么都不做),然后将自己设置为它的 Manager(理论上可能是另一个实现 Itester 接口的类),最后它再次调用 World Class 并询问它初始化世界,我希望世界类调用 Form1 实例并让它更新按钮上的标签。
lvl1:Form1 -> lvl2:World -> lvl3:Form1(或其他经理) -> 将 void 返回到 lvl2:World -> 将 void 返回到 lvl1:Form1
我错过了什么,为什么这不起作用?