public override double TotalSpecialPower => 1000;
=>
运算符是什么意思?
我知道=>
是lambda表达式,但是我不知道它在public override double TotalSpecialPower => 1000;
中的含义。
还有谁能向我解释get
和set
以及它们如何在以下代码中工作?
private int _health = 100;
public int Health
{
get => _health;
set { _health = value; CaluateHeath(); }
}
答案 0 :(得分:3)
=>
用于lambda函数。它也用于表达健全的成员。
有关表达式健全成员的文档,请参见:https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/statements-expressions-operators/expression-bodied-members
C#7.0(2016年)增加了对表达式主体属性和其他成员的支持。
在方法和属性get
块中,它等效于{ return X; }
。
get { return X; }
属性。get
,则等效于``所以这个:
public int Health
{
get => _health;
set { _health = value; CaluateHeath(); }
}
等效于:
public int Health
{
get { return _health };
set { _health = value; CaluateHeath(); }
}
这:
public override double TotalSpecialPower => 1000;
等效于:
public override double TotalSpecialPower
{
get { return 1000; }
}
这(注意括号):
public override double TotalSpecialPower() => 1000;
等效于:
public override double TotalSpecialPower()
{
return 1000;
}
答案 1 :(得分:1)
这与表情实体有关。属性只是语法糖,使方法调用看起来像普通的字段分配和获取。
一个普通的属性有一个get和set,并带有卷曲的代码块。对于一个班轮来说,这可能是很多语法。因此,我是C#语言的最新版本,您可以像使用lambda一样使用Expression Bodies(胖箭头)来获取和使用setter。
我希望能有所帮助。