What's New in C# 6
@onuralptaner
Agenda
- C# Evolution
- Roslyn
- C# 6.0 Features
Evolution of C#
C# 1.0
Managed
C# 4.0
Dynamic
C# 5.0
Asynchronous
C# 6.0
Roslyn
C# 2.0
Generics
C# 3.0
LINQ
C# 6.0 Features
Auto-Properties with Initializers
public class Person
{
public string _name = "Onuralp Taner";
public string Name { get { return _name; } }
}
Before C# 6.0
Auto-Properties with Initializers
C# 6
public class Person
{
public string Name { get; } = "Onuralp Taner";
}
Primary Constructors
Before C# 6.0
public class PayController : BasePaymentController
{
readonly ILocalizationService _localizationService;
readonly IPermissionService _permissionService;
readonly ISettingService _settingService;
readonly IStoreService _storeService;
public PayController(IStoreService storeService,
ISettingService settingService,
ILocalizationService localizationService,
IPermissionService permissionService)
{
_workContext = workContext;
_storeService = storeService;
_settingService = settingService;
_localizationService = localizationService;
_permissionService = permissionService;
}
//..
Primary Constructors
Class and Struct Parameters
public class PayController(IWorkContext workContext,
IStoreService storeService,
ISettingService settingService,
ILocalizationService localizationService,
IPermissionService permissionService)
{
readonly ILocalizationService _localizationService = localizationService;
readonly IPermissionService _permissionService = permissionService;
readonly ISettingService _settingService = settingService;
readonly IStoreService _storeService = storeService;
readonly IWorkContext _workContext = workContext;
Primary Constructors
sub title
//..
C# 3.0
Dictionary<string, string> builtInDataTypes =
new Dictionary<string, string>()
{
{"Byte", "0 to 255"},
{"Boolean", "True or false."},
{"Object", "An Object."}
};
C# 3.0
C# 6.0
Dictionary<string, string> builtInDataTypes =
new Dictionary<string, string>()
{
{"Byte", "0 to 255"},
{"Boolean", "True or false."},
{"Object", "An Object."}
};
Dictionary<string, string> builtInDataTypes =
new Dictionary<string, string>
{
["Byte"] = "0 to 255",
["Object"] = "An Object.",
["String"] = "A string"
};
Auto-properties
-
- What is the purpose of this talk?
- What do my listeners care about?
- What do I want people to remember?
What's New in C# 6
By onuralp Taner
What's New in C# 6
- 366