我正在制作游戏,我有一个名为gameScripts
的课程。内部gameScripts
是名为public void
的{{1}}方法。调用此方法时,该方法使用2个paintSquare
语句,根据哪一个为真,方形图像将相应更改。
问题是,当我尝试使用if
将图片更改为十字时,pictureBox.Image = Image.FromFile("cross.png");
会在其下方显示一条红线,并显示错误消息" pictureBox.Image
& #34;
我已尝试在我的命名空间中包含System.Drawing和System.Windows.Forms,但我仍然遇到此错误。
任何帮助都将不胜感激,谢谢。
答案 0 :(得分:0)
消息'ClassXXX' does not contain a definition for 'YYY' and no extension method 'YYY' accepting a first argument of type 'ClassXXX' could be found (are you missing a using directive or an assembly reference?)
实际上就是它的含义。最有可能在你的代码中有这样的结构:
myObject.YYY
但该类(myObject所在的实例)没有名称为YYY的成员。
例如:
class MyClass {
public string MyField;
}
...
var myObj = new MyClass();
myObj.MyField = "OK";
myObj.NotMyField = "FAIL"; // compiler will complain at this line
但是,编译器通过查看变量类型来获取可用属性和方法的列表。这可能会导致对象本身具有成员的情况,但编译器无法看到它,因为变量是使用不同的类型定义的。
考虑以下代码片段:
class MyExtClass : MyClass {
public string MyNewField;
}
...
MyClass myObj = new MyExtClass();
myObj.MyField = "OK";
myObj.MyNewField = "FAIL"; // compiler will complain at this line
// because MyClass does not have it
因此,在您的代码中,pictureBox
似乎被定义为System.Windows.Forms.Control
。因此,即使它实际上是System.Windows.Forms.PictureBox
,编译器也无法知道它并因错误而停止。