This presentation discusses an overview of the .NET framework, a little history of C#, and the evolution of C# from its early days up to its current form including a preview of C# 7.0
Advantages of Hiring UIUX Design Service Providers for Your Business
C# and the Evolution of a Programming Language
1. C# and the Evolution of a
Programming Language
Jon Limjap
Microsoft MVP forVisual Studio and DevelopmentTechnologies
Philippine .NET Users Group Lead
2. About Me
Senior Software Architect, Beam And Go
Microsoft MVP forVisual Studio and Development
Technologies
Philippine .NET Users Group Lead
@lattex | jonlimjap@gmail.com
7. Common
Language
Runtime
C#C# Visual Basic.NETVisual Basic.NET F#F#
Common Language RuntimeCommon Language Runtime
PC /TabletPC /Tablet
Windows
Phone
(RIP)
Windows
Phone
(RIP)
Windows
Server
Windows
Server
Mac /
Linux
Mac /
Linux
Android /
iOS
Android /
iOS
Intermediate LanguageIntermediate Language
20. C# 6.0
July 2015
Using statements for static members
Auto-property Initializers
Getter-only automatic properties
Dictionary Initializers
Expression-bodied members
Await inside a finally block
Exception Filters
Null-conditional operators
String interpolation
And a few more…
23. Digit
separators
int bin = 0b1001_1010_0001_0100;
int hex = 0x1b_a0_44_fe;
int dec = 33_554_432;
int weird = 100_000;
double real = 1_000.111_1e-1_000;
26. Ref returns
and Ref Locals
string[] myArray = { "one", "two", "three" };
WriteLine($"The first element of the array is {myArray[0]}");
ref string n = ref FirstElement(myArray);
n = "other"; //myArray[0] now equals "other"
WriteLine($"The first element of the array has become
{myArray[0]}");
27. C# 7 features
that will
probably be
released but
are not
available yet
28. Tuples
public (int x, int y) Compute(){}
// Call the method
var (x,y) = Compute();
public (int sum, int count) Tally(IEnumerable<int> values)
{
sum = 0; count = 0;
foreach (var value in values) { sum += value; count++; }
return (sum,count);
}
29. RecordTypes
//Instead of:
public class Cube
{
public int Width { get; set; }
public int Height { get; set; }
public int Depth { get; set; }
}
//We write this:
public class Cube(int Width, int Height, int Depth)