41 lines
966 B
Markdown
41 lines
966 B
Markdown
|
---
|
|||
|
title: Expression Bodied Methods and Properties
|
|||
|
localeTitle: 表达方法和性质
|
|||
|
---
|
|||
|
# 表达方法和性质
|
|||
|
|
|||
|
您可以将方法和属性声明为lambda表达式,而无需语句块。用于简单实现,这种语法比声明常规方法或属性更简洁,因为它消除了对一些花括号的需要和使用显式返回语句。
|
|||
|
|
|||
|
以下是常规方法声明的示例:
|
|||
|
|
|||
|
```csharp
|
|||
|
public Point CreatePoint(int x, int y)
|
|||
|
{
|
|||
|
return new Point(x, y);
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
以下给出了相同的结果,但是作为表达式身体方法编写:
|
|||
|
|
|||
|
```csharp
|
|||
|
public Point CreatePoint(int x, int y) => new Point(x, y);
|
|||
|
```
|
|||
|
|
|||
|
您还可以使用此语法声明属性。以下代码是我们如何声明没有lambda表达式的get-only属性:
|
|||
|
|
|||
|
```csharp
|
|||
|
public Point Location
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
return _location;
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
通过表达式方法,我们可以将此代码缩小到只有一行:
|
|||
|
|
|||
|
```csharp
|
|||
|
public Point Location => _location
|
|||
|
|
|||
|
```
|