C#Duration是一种类型,但用作变量
我遵循O'Reilly Media出版的《大脑友好指南:头先C#》一书的步骤 遇到此错误时,C#Duration是一种类型,但用作变量,c#,C#,我遵循O'Reilly Media出版的《大脑友好指南:头先C#》一书的步骤 遇到此错误时,“Windows.UI.Xaml.Duration”是一个“类型”,但它的用法类似于“变量” 插入此代码时Duration=新的持续时间(TimeSpan.FromSeconds(random.Next(4,6)) 我想知道为什么我会出现这个错误,我能做些什么来修复它 下面是书中描述的完整代码方法,如果它有帮助,如果它只是造成混乱,让用户难以阅读文本,我将删除该方法 private void Animat
“Windows.UI.Xaml.Duration”是一个“类型”,但它的用法类似于“变量”
插入此代码时Duration=新的持续时间(TimeSpan.FromSeconds(random.Next(4,6))代码>
我想知道为什么我会出现这个错误,我能做些什么来修复它
下面是书中描述的完整代码方法,如果它有帮助,如果它只是造成混乱,让用户难以阅读文本,我将删除该方法
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();
}
编译器试图告诉您不能使用类型名Duration
来命名匿名类型中的字段,因为您的初始值设定项语法不正确:您在new DoubleAnimation()
后面加了一个分号,因此初始值设定项的其余部分被视为独立的代码块
以下是正确的语法:
DoubleAnimation animation = new DoubleAnimation {
From = from,
To = to,
Duration = new Duration(TimeSpan.FromSeconds(random.Next(4, 6)))
};
我删除了newdoubleanimation
后面的括号,因为调用了默认构造函数。我还用逗号替换了分号,以符合C#语法。编译器试图告诉您,您不能用类型名Duration
命名匿名类型中的字段,因为您的初始值设定项语法不正确:您在new DoubleAnimation()
后面放了分号,因此,初始化器的其余部分被视为独立的代码块
以下是正确的语法:
DoubleAnimation animation = new DoubleAnimation {
From = from,
To = to,
Duration = new Duration(TimeSpan.FromSeconds(random.Next(4, 6)))
};
我删除了newdoubleanimation
后面的括号,因为调用了默认构造函数。我还用逗号替换了分号以符合C#语法。正如Jesse所指出的,您应该删除分号并用逗号替换:
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();
}
正如Jesse指出的,您应该删除分号并用逗号替换:
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();
}
newdoubleanimation()代码>分号终止语句。newdoubleanimation()代码>分号终止语句。