Chapter 20. C# Language Reference

The following table describes the syntax of various C# language elements. The left column shows the syntax for each element, and the right column includes one or more examples.

Arrays
type [*]
+ array-name = 
[
  new type [ dimension+ ][*]*; |
  { value1, value2, ... };
]
byte[] arr1 = new byte[10];
int[] arr2 = {0, 1, 2};
([*] is the set: [] [,] [,,] etc.)
Attributes
[[target:]? attribute-name (
positional-param+ |
[named-param = expr]+ |
positional-param+, [named-param = 
                   expr]+)?]
[assembly:CLSCompliant(false)]
[WebMethod(true, 
  Description="My web method")]
Break statement
break;
break;
Checked/unchecked
checked (expr)
unchecked (expr)
// throws exception
short x = 32767;
int i = checked((short) ++x );
// silently overflows to -32768
short y = 32767;
int j = unchecked((short) ++y );
checked [statement | statement-block]
unchecked [statement | statement-block]
// throws exception
public short foo() {
  short y = 32767;
  checked {
    return ++y;
  }
}
// silently overflows
public short bar() {
  short y = 32767;
  unchecked {
    return ++y;
  }
}
Class declaration
                           attributes? unsafe? access-modifier?
new? 
[ abstract | sealed ]?
class class-name 
[: base-class | 
 : interface+ | 
 : base-class, interface+ ]?
{ class-members }
public class MyClass : Base, IFoo {
  // ...
}
Constant declaration
const type [variable = constant-expr]+;
const int xyzzy = 42;
Constant fields
                           attributes? access-modifier?
new?
const type [constant-name = 
                    constant-expr]+;
internal ...

Get C# in a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.