Keyur Patel
What are the new features you most likely in c# 6
By Keyur Patel in C# on Dec 10 2014
  • Friyank Parikh
    Jan, 2015 6

    Whats New in C# 6.0? 01-Auto-Property Initializers 02. Primary Constructors. 03-Using Explicit Constructors 04-Dictionary Initializers 05-Add Extensions 06-Event Initializer 07-Literals and Separators 08-Declaration Expressions 09-Using Statics 10-Setting Up for Errors 11-Passing Tests 12-Conditional Access 13-await and catch 14-nameof 15-Expression Bodied Members 16- Roslyn Compilation 17-Roslyn Emit and Execute 18-Roslyn Semantics and Extension.

    • 3
  • Dhanik Sahni
    Jul, 2015 15

    https://msdn.microsoft.com/en-us/magazine/dn802602.aspx http://www.codeproject.com/Articles/879887/Csharp-New-Features

    • 1
  • Rahul V
    Feb, 2015 1

    http://volatileread.com/Wiki?id=1075 You can also experiment with the new features online there.

    • 1
  • Raghvandra Shukla
    Mar, 2016 28

    Null Conditional OperatorAs programmers, we do a lot of null condition checks in our code. With the new null condition operator, you can do a lot of null check in a single line of code using the “?” & “??” operators.BeforeHide Copy Code if(employee != null && employee.ContactDetails != null) {Console.WriteLine(employee.Name + "-" + employee.ContactDetails.Address); } C# 6Hide Copy Code Console.WriteLine(employee?.Name + "-" + employee?.ContactDetails?.Address?? " No Details"); In “employee?.Name”, if the object is not null, then Name will be printed. The “??” operator can be used to print some other information if the object is null. This feature saves a lot of lines of code which were earlier used for null checks.

    • 0
  • Kml Surani
    May, 2015 12

    http://volatileread.com/Wiki?id=1075 You can also experiment with the new features online there.

    • 0
  • Munesh Sharma
    Jan, 2015 7

    http://msdn.microsoft.com/en-us/magazine/dn802602.aspx

    • 0
  • Rajkumar Bandekar
    Dec, 2014 23

    1. $ signThe purpose for it is to simplify string based indexing and that is all. its not some thing like current dynamic features of C# since it internally uses regular indexing functionality. to understand lets consider following example:Collapse | Copy Codevar col = new Dictionary(){// using inside the intializer$first = "Hassan"};//Assign value to member//the old way:col["first"] = "Hassan";// the new way col.$first = "Hassan";2. Exception filters: Exception filters are already supported in VB compiler but now they are coming into C#. exception filters lets you specify a condition for a catch block. the catch block gets executed only if the condition is satisfied, this one is my favorite feature, so let's look at an example:Collapse | Copy Codetry{throw new Exception("Me");}catch (Exception ex) if (ex.Message == "You"){// this one will not execute.}catch (Exception ex) if (ex.Message == "Me"){// this one will execute} 3. await in catch and finally block: As far as I know, no one know why in C# 5 using await keyword in catch and finally block was not available, any way its now possible to use though. this is great because often we want to perform I/O operation in order to log the exception reason in catch block or such things in finally block and they Need asynchrony.Collapse | Copy Codetry{DoSomething();}catch (Exception){await LogService.LogAsync(ex);} 4. Declaration expressions This feature simply allows you to declare local variable in the middle of an expression. It is as simple as that but really destroys a pain. I have been doing a lot of asp.net web form projects in the past and this was my every day code:Collapse | Copy Code long id; if (!long.TryParse(Request.QureyString["Id"], out id)) { } which can be improved to this:Collapse | Copy Code if (!long.TryParse(Request.QureyString["Id"], out long id)) { } The scoping rules for this kind of declaration is same as general scoping rules in C#.5. using Static This feature allows you to specify a particular type in a using statement after that all static members of that type will be accessible is subsequent code.Collapse | Copy Code using System.Console;namespace ConsoleApplication10 {class Program{static void Main(string[] args){//Use writeLine method of Console class//Without specifying the class nameWriteLine("Hellow World");}} } 6. Auto property initializer: With C# 6 initialize auto properties just like a field at declaration place. The only thing to notice here is that this initialization dose not cause the setter function to be invoked internally. the value of backing field is set directly. so here is an example:Collapse | Copy Code public class Person{// You can use this feature on both//getter only and setter / getter only propertiespublic string FirstName { get; set; } = "Hassan";public string LastName { get; } = "Hashemi";} 7. Primary Constructor: Woohooo, primary constructors will help destroy the pain of capturing values of constructor parameters to fields in the class for further operations. This is really useful. The main purpose for it is using constructor parameters for initialization. When declaring a primary constructor all other constructors must call the primary constructor using :this(). here is an example finally:Collapse | Copy Code//this is the primary constructor:class Person(string firstName, string lastName){public string FirstName { get; set; } = firstName;public string LastName { get; } = lastName;} notice that declaration of primary constructor is at the top of the class.8- Dictionary Initializer: some people believed that the old way of initiailzing dictionaries was dirty so the C# team dicided to make it cleaner, thanks to them. here is an example of the old way and new way:Collapse | Copy Code// the old way of initializing a dictionaryDictionary oldWay = new Dictionary(){{ "Afghanistan", "Kabul" },{ "United States", "Washington" },{ "Some Country", "Some Capital city" }};// new way of initializing a dictionaryDictionary newWay = new Dictionary(){// Look at this!["Afghanistan"] = "Kabul",["Iran"] = "Tehran",["India"] = "Delhi"};

    • 0


Most Popular Job Functions


MOST LIKED QUESTIONS