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  | |||
|  | 
 | |||
|  | ``` |