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 ...

Get C# in a Nutshell, Second Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.