C# 实例化字段不可供参考
我是编程新手,正在尝试学习C#for Windows 8应用程序开发。我用的是《头先C#-第三版》这本书。第一个例子似乎失败了。对于那些拥有这本书的人,这一点列在第33页。在下面的代码中,我去掉了不必要的方法,只留下了相关的代码C# 实例化字段不可供参考,c#,c#-5.0,windows-applications,C#,C# 5.0,Windows Applications,我是编程新手,正在尝试学习C#for Windows 8应用程序开发。我用的是《头先C#-第三版》这本书。第一个例子似乎失败了。对于那些拥有这本书的人,这一点列在第33页。在下面的代码中,我去掉了不必要的方法,只留下了相关的代码 public sealed partial class MainPage : Save_the_Humans.Common.LayoutAwarePage { public MainPage() { Random random = new
public sealed partial class MainPage : Save_the_Humans.Common.LayoutAwarePage
{
public MainPage()
{
Random random = new Random();
this.InitializeComponent();
}
private void startButton_Click(object sender, RoutedEventArgs e)
{
AddEnemy();
}
private void AddEnemy()
{
ContentControl enemy = new ContentControl();
enemy.Template = Resources["EnemyTemplate"] as ControlTemplate;
AnimateEnemy(enemy, 0, playArea.ActualWidth - 100, "(Canvas.Left)");
AnimateEnemy(enemy, random.Next((int)playArea.ActualHeight - 100),
random.Next((int)playArea.ActualHeight - 100), "(Canvas.Top)");
playArea.Children.Add(enemy);
}
private void AnimateEnemy(ContentControl enemy, double from, double to, string propertyToAnimate)
{
Storyboard storyBoard = new Storyboard() { AutoReverse = true, RepeatBehavior = RepeatBehavior.Forever };
DoubleAnimation animation = new DoubleAnimation()
{
From = from,
To = to,
Duration = new Duration(TimeSpan.FromSeconds(random.Next(4, 6)))
};
Storyboard.SetTarget(animation, enemy);
Storyboard.SetTargetProperty(animation, propertyToAnimate);
storyBoard.Children.Add(animation);
storyBoard.Begin();
}
}
问题在于实例化字段“random”的使用。编译时错误表示“名称“random”在当前上下文中不存在。”我不够熟练,不知道是什么导致了问题
AnimateEnemy(enemy, random.Next((int)playArea.ActualHeight - 100),
random.Next((int)playArea.ActualHeight - 100), "(Canvas.Top)");
这不是一个领域;它是构造函数中的局部变量。
它不存在于构造函数之外
您需要将其更改为字段。这不是字段;它是构造函数中的局部变量。
它不存在于构造函数之外
您需要将其更改为字段。您的随机变量不是字段。将构造函数更改为:
private Random random;
public MainPage()
{
this.random = new Random();
this.InitializeComponent();
}
您的随机变量不是字段。将构造函数更改为:
private Random random;
public MainPage()
{
this.random = new Random();
this.InitializeComponent();
}
非常感谢你的回答。你知道作者为什么会特别注明这是一个领域吗?另外,我知道我在这方面是错的,但是如果它是“Random Random=new Random();”,那么它不会创建一个名为“Random”的新变量“Random”变量,而不在构造函数之外声明它吗?也许作者只是犯了一个错误。您提供的示例实际上只是使Random的实例只能在构造函数中访问。再说一次,可能是他们的错误!如果您的问题得到解决,我将非常感激mark的回答是正确的!:)非常感谢你的回答。你知道作者为什么会特别注明这是一个领域吗?另外,我知道我在这方面是错的,但是如果它是“Random Random=new Random();”,那么它不会创建一个名为“Random”的新变量“Random”变量,而不在构造函数之外声明它吗?也许作者只是犯了一个错误。您提供的示例实际上只是使Random的实例只能在构造函数中访问。再说一次,可能是他们的错误!如果您的问题得到解决,我将非常感激mark的回答是正确的!:)