C# 7 Series, Part 8: “in” Parameters

C# 7 Series Part 1: Value TuplesPart 2: Async MainPart 3: Default LiteralsPart 4: DiscardsPart 5: Private ProtectedPart 6: Read-only structsPart 7: Ref ReturnsPart 8: (This post) “in” Parameters Background By default, method arguments are passed by value. That is, arguments are copied and passed into the method. Therefore, modification to the argument inside the…

0

C# 7 Series, Part 7: Ref Returns

C# 7 Series Part 1: Value TuplesPart 2: Async MainPart 3: Default LiteralsPart 4: DiscardsPart 5: Private ProtectedPart 6: Read-only structsPart 7: (This post) Ref Returns Background There are two ways to pass an value into a method: Pass by value. When an argument is passed into a method, a copy of the argument (if…

0

C# 7 Series, Part 6: Read-only structs

C# 7 Series Part 1: Value TuplesPart 2: Async MainPart 3: Default LiteralsPart 4: DiscardsPart 5: Private ProtectedPart 6: (This article) Read-only structs Background In .NET world, there are two basic types: reference types and value types. To be short, Reference types are classes that can be inherited/extended, when passing reference type objects, a “pointer”…

2

C# 7 Series, Part 5: Private Protected

C# has several accessibility modifiers, public, internal, internal protected, and private. Public: The member declared with this accessibility can be visible within the assembly containing this member, or any other assembly that references the containing assembly. i.e., access is not limited. Internal: The member declared with this accessibility can be visible within the assembly containing…

10

C# 7 Series, Part 4: Discards

Sometimes we want to ignore values returned from a method, especially those out arguments, a typical example is to check whether a string can be parsed to another type: bool parsedValue;if (bool.TryParse(“TRUE”, out parsedValue)) { /* Do your stuff */ } Here we want to ignore parsedValue. We also want to make this variable inaccessible…

9

C# 7 Series, Part 3: Default Literals

C#’s default keyword has two kinds of usages: one is to label the fallback branch of the switch…case structure (for any path that does not fall into the case conditions); another is to represent the “default” value of a type. I will discuss this usage in this blog. The default value of a type is…

9

C# 7 Series, Part 2: Async Main

As you may know, there are two kinds of the programs the C# language can build. One is a program with an entrypoint so that the Operating System can load the program and execute it from the entrypoint; another is the program without an entrypoint. Operating System cannot directly execute the program, the program can…

12

C# 7 Series, Part 1: Value Tuples

Starting today I will start a new C# 7 series, to introduce new language features of C# 7+ features. Please note that I am not saying C# 7.0, I am saying C# 7 plus, because there will be minor language versions (like 7.1, 7.2) that will bring new features in steps (thanks to Roslyn!) such…

5

Ad-hoc pagination support with SQL Server codenamed “Denali”

Microsoft has announced the Community Technology Preview (CTP) of its next generation SQL Server product, codenamed “Denali” several months. SQL Server “Denali” has many new features and enhancements, including these for the programmability and manageability features which you may interest in: Visual Studio 2010 based Management Studio tools Advanced T-SQL debugging support Code snippets and…

0

The Asynchronous Programming Models

An important new feature of C# 5.0 that comes with Visual Studio 11 is the async and the await keywords. They are syntactical sugars that simplifies the construction of asynchronous operations code. When the C# compiler sees an await expression, it generates code that automatically invokes the expression asynchronously, then immediately return the control flow…

1