实例化字段不可供参考

本文关键字:参考 字段 实例化 | 更新日期: 2023-09-27 18:33:32

我是编程新手,正在尝试学习用于Windows 8应用程序开发的C#。 我正在使用"Head First C# - 3rd Edition"一书。 第一个例子似乎失败了。 对于那些拥有这本书的人,这列在第 33 页。 在下面的代码中,我删除了不必要的方法,只留下了相关的代码。

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();
    }
}

问题在于使用实例化字段"随机"。 编译时错误显示"名称'随机'在当前上下文中不存在。 我不够熟练,不知道可能导致问题的原因。

        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();
}

这不是一个字段;它是构造函数中的一个局部变量。
它不存在于构造函数之外。

您需要将其更改为字段。