some quick code demos – C# 6.0

1- Support for Primary Constructors and Auto Property Assignments

Primary constructors allow you to specify arguments as part of your class declaration itself. Also, now C# supports assigning to Auto properties. Together, you may use it to initialise classes, as shown below.

//Test.csfile 
//C# 6.0 may support Primary Constructors and Assignment To Auto Properties

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CSharp6Test
{

   //Feature: Primary Constructors or Class with arguments 😉
    class Point(int x,int y)
    {
        //Feature: Look ma, you can assign to auto properties now
        public int X {get;set;} =x;
        public int Y {get;set;} =y;

    }

    class MainClass
    {
        public static void Main() 
        {
        
            //Using Primary Constructor
            var p=new Point(1,3);

            //Reading the values back from the properties
            Console.WriteLine("X={0}",p.X);
            Console.WriteLine("Y={0}",p.Y);
        }
    }
}




2 – Invocation of static methods directly

Another completed feature seems like the support for direct invocation of static methods directly, with out the full name space

//Just import the namespace
using System.Console;

namespace CSharp6Test
{
    class Class1
    {
   public static void Main() 
    {
  //And use the static methods now directly  
  WriteLine("Look ma, now you can use static methods like this...");
    }
    }

}

And that works too. 

3 – Dictionary initializers and indexed member access

Say good bye to the dirty strings when working with dictionary objects and collections. Let us see if the new $ Indexed member syntax is going to work. See it here.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Console;

namespace CSharp6Test
{
    class Class1
    {
  public static void Main() 
    {
      //See the new dictionary initializer syntax
   var d=new Dictionary<string,int>{["item1"]=1,["item2"]=2}; 
   
   //This is even better
   //var d=new Dictionary<string,int>{$item1=1,$item2=2}; 
   
   //And now you can access indexed members using $variablename syntax
   
   //No more dirty strings
   WriteLine("{0}",d.$item1);
   WriteLine("{0}",d.$item2);
    }
    }

}

Try compiling the above apps with our Roslyn test app (Get it here). Compile them 🙂  Leaving all the other features up to you to try out. Happy Coding!!

http://damieng.com/blog/2013/12/09/probable-c-6-0-features-illustrated

Advertisements
By Sriramjithendra Posted in C#.NET

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s