37 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			37 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								title: Expression Bodied Methods and Properties
							 | 
						||
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Expression Bodied Methods and Properties
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								You can declare methods and properties as a lambda expression, without the need for a statement block. Intended for simple implementations, this syntax is more concise than declaring a regular method or property in that it eliminates the need for some of the curly braces and the use of an explicit return statement.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Here is an example of a regular method declaration:
							 | 
						||
| 
								 | 
							
								```csharp
							 | 
						||
| 
								 | 
							
								public Point CreatePoint(int x, int y)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    return new Point(x, y);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The following gives the same result, but is written as an expression bodied method:
							 | 
						||
| 
								 | 
							
								```csharp
							 | 
						||
| 
								 | 
							
								public Point CreatePoint(int x, int y) => new Point(x, y);
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								You can also declare properties with this syntax. The following code is how we declare a get-only property without a lambda expression:
							 | 
						||
| 
								 | 
							
								```csharp
							 | 
						||
| 
								 | 
							
								public Point Location
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    get
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        return _location;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Through an expression-bodied method, we can shrink this code down to only one line:
							 | 
						||
| 
								 | 
							
								```csharp
							 | 
						||
| 
								 | 
							
								public Point Location => _location
							 | 
						||
| 
								 | 
							
								```
							 |