![](/img/trans.png)
[英]What is the difference between Send Message and Post Message and how these relate to C# ,WPF and Pure windows programming?
[英]What is this error message in C# programming?
我收到一個錯誤:
'MoveBall.Game'不包含'ballSpeedAxis1'的定義,並且找不到擴展方法'ballSpeedAxis1'接受類型為'MoveBall.Game'的第一個參數(是否缺少using指令或程序集引用?)
剛開始時,嘗試一一插入值沒有錯誤。
int ballSpeedAxis1 = 1;
int ballSpeedAxis2 = 1;
...
int ballSpeedAxis10 = 1;
但是,在我更改為for循環之后,如下所示。
var ballSpeedXAxis = new int[10];
for (int i = 0; i < ballSpeedXAxis.Length; i++)
{
ballSpeedXAxis[i] = 1;
}
該錯誤發生在以下幾行:
private void OnUpdate(object sender, object e)
{
Canvas.SetLeft(this.ball1, this.ballSpeedXAxis + Canvas.GetLeft(this.ball1));
}
我可以知道如何解決嗎?
因為您的可變范圍是錯誤的。 應在類內部而不是在初始化它的方法中定義ballSpeedXAxis
。 另外,如果定義了類作用域變量,則不能使用var。 而且很奇怪,您沒有在OnUpdate方法中使用索引。
class MyClass {
int[] ballSpeedXAxis = new int[10];
MyClass() { // constructor
for (int i = 0; i < ballSpeedXAxis.Length; i++)
{
ballSpeedXAxis[i] = 1;
}
}
private void OnUpdate(object sender, object e)
{
Canvas.SetLeft(this.ball1, this.ballSpeedXAxis[<some index here>] + Canvas.GetLeft(this.ball1));
}
}
您將ballSpeedXAxis更改為一個數組,但是在OnUpdate中,您試圖像對待普通整數一樣訪問它:
private void OnUpdate(object sender, object e)
{
Canvas.SetLeft(this.ball1, this.ballSpeedXAxis + Canvas.GetLeft(this.ball1));
}
您必須在希望使用的數組中指定int的索引
例如this.ballSpeedXAxis [0]。
現在,您說的錯誤是:
'MoveBall.Game'不包含'ballSpeedAxis1的定義
如果您使用的是VisualStudio,MonoDevelop或Xamarin Studio,則在“錯誤”窗口中單擊該錯誤項將使您直接進入代碼中仍然引用ballSpeedAxis1的位置。
您甚至可以嘗試按CTRL + F並輸入'ballSpeedAxis1'
在搜索框中,然后搜索整個解決方案。
如果使用任何一種方法都找不到位置,則可能不同步,因此應使用IDE的“ CLEAN SOLUTION”和“ REBUILD SOLUTION”功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.