=>操作符指向字段或方法的意思?c#
本文关键字:方法 意思 字段 操作符 | 更新日期: 2023-09-27 18:06:44
我在下面的例子中看到过操作符=>的使用:
public int Calculate(int x) => DoSomething(x);
或
public void DoSoething() => SomeOtherMethod();
我从来没有见过这样使用这个运算符,除了在lambda表达式中。
下面的代码是做什么的?何时何地使用?
这些是c# 6引入的表达式体语句。关键是使用类似lambda的语法来实现单行简单的属性和方法。以上语句展开如下:
public int Calculate(int x)
{
return DoSomething(x);
}
public void DoSoething()
{
SomeOtherMethod();
}
值得注意的是,属性也接受表达式体,以便创建简单的get-only属性:
public int Random => 5;
等价于
public int Random
{
get
{
return 5;
}
}
看看这篇微软文章。这是一个C# 6.0
特性,其中属性没有语句体。您可以将它们用于get
方法或单行表达式。例如:
public override string ToString() => string.Format("{0}, {1}", First, Second);
c# 6.0中的一个新特性叫做表达式体。
用返回值编写单行代码是一种速记。
例如 int GetNumber() => 1;
是一个表达式体语句,与
相同:int GetNumber()
{
return 1;
}
你可以在这里阅读更多
这是c# 6中新的速记语法。
在你的第一个例子中,它定义了一个公共方法,Calculate(int x)
,其实现在DoSomething(x)
中定义。
等价的定义是:
class SomeClass {
public int Calculate(int x) { return DoSomething(x); }
protected int DoSomething(int x) { ... }
}