This post is the continuation of New Features in C# 6.0. The new features in C# 6.0 are String Interpolation, nameof Expressions, Exception Filters, Enhancement to Auto Properties, Null-conditional operators, Expression-bodied methods, Dictionary Initializer and Await in catch and finally blocks.
5. Null-conditional operators
By using this feature developers will definately going to reduce the number of Null Reference Error. Like nullable types, null-conditional operators can be used now. For example, we used to check the object is null or not before calling its properties like
var value = a != null ? a.Prop : null;
But now using Null-conditional operator we can write
var value = a?.Prop;
The above code will return Prop only when a is not null, otherwise it will return null value.
6. Expression-bodied methods
Expression-bodied methods allow properties, methods, operators and other function members to have bodies as lambda expressions instead of statement blocks. For example, previously we used to write expressions like
public int FindSqaure(int a)
{
return a * a;
}
Now we can rewrite the preceeding example in a single line as in the following
public int FindSqaure(int a) => a * a;
7. Dictionary Initializer
In C# 6.0 you can initialize dictionary in following manner
Dictionary<string, string> dictn = new Dictionary<string, string>
{
["EMP1"] = "Employee1",
["EMP2"] = "Employee2",
["EMP3"] = "Employee3",
["EMP4"] = "Employee4",
};
8. Await in catch and finally blocks
In C# 6.0, we can call async operations in catch {} and finally blocks {} by specifying the await keyword. Here is the code snippet
ILogger log = new Logger();
try{
}
catch(Exception ex){
await log.LogError(ex);
}
finally{
await log.Log("Completed");
}
Please Like and Share the Blog, if you find it interesting and helpful.
5. Null-conditional operators
By using this feature developers will definately going to reduce the number of Null Reference Error. Like nullable types, null-conditional operators can be used now. For example, we used to check the object is null or not before calling its properties like
var value = a != null ? a.Prop : null;
But now using Null-conditional operator we can write
var value = a?.Prop;
The above code will return Prop only when a is not null, otherwise it will return null value.
6. Expression-bodied methods
Expression-bodied methods allow properties, methods, operators and other function members to have bodies as lambda expressions instead of statement blocks. For example, previously we used to write expressions like
public int FindSqaure(int a)
{
return a * a;
}
Now we can rewrite the preceeding example in a single line as in the following
public int FindSqaure(int a) => a * a;
7. Dictionary Initializer
In C# 6.0 you can initialize dictionary in following manner
Dictionary<string, string> dictn = new Dictionary<string, string>
{
["EMP1"] = "Employee1",
["EMP2"] = "Employee2",
["EMP3"] = "Employee3",
["EMP4"] = "Employee4",
};
8. Await in catch and finally blocks
In C# 6.0, we can call async operations in catch {} and finally blocks {} by specifying the await keyword. Here is the code snippet
ILogger log = new Logger();
try{
}
catch(Exception ex){
await log.LogError(ex);
}
finally{
await log.Log("Completed");
}
Please Like and Share the Blog, if you find it interesting and helpful.
No comments:
Post a Comment