Jump to content

C# Programming/Syntax

From Wikibooks, open books for an open world

C# syntax looks quite similar to the syntax of Java because both inherit much of their syntax from C and C++. The object-oriented nature of C# requires the high-level structure of a C# program to be defined in terms of classes, whose detailed behaviors are defined by their statements.

Statements

[edit | edit source]

The basic unit of execution in a C# program is the statement. A statement can declare a variable, define an expression, perform a simple action by calling a method, control the flow of execution of other statements, create an object, or assign a value to a variable, property, or field. Statements are usually terminated by a semicolon.

Statements can follow in sequence or be grouped in brace-enclosed statement blocks.

Examples:

int sampleVariable; // declaring a variable sampleVariable = 5; // assigning a value Method(); // calling an instance method SampleClass sampleObject = new SampleClass(); // creating a new instance of a class sampleObject.ObjectMethod(); // calling a member function of an object // executing a "for" loop with an embedded "if" statement  for (int i = 0; i < upperLimit; i++) {  if (SampleClass.SampleStaticMethodReturningBoolean(i))  {  sum += sampleObject.SampleMethodReturningInteger(i);  } } 

Statement blocks

[edit | edit source]

A series of statements surrounded by curly braces form a block of code. Among other purposes, code blocks serve to limit scope, or the range in which a variable can be used. A variable is only accessible in the block in which it is defined. Code blocks can be nested and often appear as the bodies of methods.

private void MyMethod(int integerValue) { // This block of code is the body of "MyMethod()"  // The 'integerValue' integer parameter is accessible to everything in the method  int methodLevelVariable; // This variable is accessible to everything in the method  if (integerValue == 2)  {  // methodLevelVariable is still accessible here     int limitedVariable; // This variable is only accessible to code in the, if block  DoSomeWork(limitedVariable);  }    // limitedVariable is no longer accessible here   } // Here ends the code block for the body of "MyMethod()". 

Comments

[edit | edit source]

Comments allow inline documentation of source code. The C# compiler ignores comments. These styles of comments are allowed in C#:

Single-line comments
The // character sequence marks the following text as a single-line comment. Single-line comments, as one would expect, end at the first end-of-line following the // comment marker.
Multiple-line comments
Comments can span multiple lines by using the multiple-line comment style. Such comments start with /* and end with */. The text between those multi-line comment markers is the comment.
// This style of a comment is restricted to one line. /*   This is another style of a comment.  It allows multiple lines. */ 
XML Documentation-line comments
These comments are used to generate XML documentation. Single-line and multiple-line styles can be used. The single-line style, where each line of the comment begins with ///, is more common than the multiple-line style delimited by /** and */.
/// <summary> documentation here </summary> /// <remarks> /// This uses single-line style XML Documentation comments. /// </remarks> /**   * <summary> documentation here </summary>  * <remarks>  * This uses multiple-line style XML Documentation comments.  * </remarks>  */ 

Case sensitivity

[edit | edit source]

C# is case-sensitive, including its variable and method names.

The variables myInteger and MyInteger of type int below are distinct because C# is case-sensitive:

 int myInteger = 3;  int MyInteger = 5; 

For example, C# defines a class Console to handle most operations with the console window. Writing the following code would result in a compiler error unless an object named console had been previously defined.

 // Compiler error!  console.writeline("Hello"); 

The following corrected code compiles as expected because it uses the correct case:

 Console.WriteLine("Hello");