Func vs Action
- Func returns values from the delegate (LINQ .Where())
- Action does not return anything (LINQ Foreach())
Fluent interfaces
https://www.simple-talk.com/dotnet/.net-framework/fluent-code-in-c/Asynchronous Programming
Using async and await
Fluent validations
https://fluentvalidation.codeplex.com
IDisposable interface
IDisposable Pattern (MSDN)
http://stackoverflow.com/questions/6967108/is-idisposable-dispose-called-automaticallyhttp://stackoverflow.com/questions/45036/will-the-garbage-collector-call-idisposable-dispose-for-me
Implementing IDisposable correctly
IDisposable vs Destructor (SO1, SO2)
IDisposable vs finalize (SO, MSDN)
Logging
https://code.google.com/p/elmah/Preprocessor Directives (link)
Provides instructions to the compiler. Used to help in conditional compilations.
Type Inference
C# used to be a strongly typed language. You need to specify the type of the variable explicitly. But from C# 3.0 type inference was introduced. with var keyword. This is very useful in LINQ and sometimes also increases the readability of the program (See here, here and here). var is also called implicitly typed local variable.
Read more here, here (SO), MSDN, var and performance.
dynamic type
you can use dynamic type to by-pass compile time type checking. It's type can be changed at run time hence these are resolved at run-time. dynamic type behaves like object.
dynamic can be used to make poorly designed external libraries easier to use. See here and here.
MSDN.
0 comments:
Post a Comment