C#의 문법은 자바의 문법과 상당히 유사하게 나타난다. 두 언어 모드 C와 C++의 문법을 상당히 물려 받았기 때문이다. C#의 객체지향 특성은 클래스 조건에서 정의되기 위해 C# 프로그램의 높은 수준의 구조를 필요로 하며, 자세한 행동들이 클래스의 명령문에서 정의 된다.

명령문

+/-

C# 프로그래밍에서 실행의 기본 단위는 "명령문"이다. 명령문은 변수를 선언하고, 표현을 정의 하며, 매서드를 호출하여 간단한 작업을 수행하고, 다른 구문의 실행 흐름을 제어하거나 객체를 생성하고 변수, 프로퍼티, 또는 필드를 할당한다. 명령문은 일반적으로 세미콜론(;)으로 마친다.

명령문은 명령문 목록을 쉼표(,)를 사용하여 묶을 수 있으며 중괄호({})로 묶을 수 있다.

예제:

int sampleVariable;                           // 변수를 선언한다.
sampleVariable = 5;                           // 값을 할당한다.
Method();                                     // 인스턴스 메서드를 호출한다.
SampleClass sampleObject = new SampleClass(); // 객체의 새 인스턴스를 생성한다.
sampleObject.ObjectMethod();                  // 객체의 맴버함수를 호출한다.

// "if" 조건문을 포함하는 "for" 반복문을 실행
for(int i = 0; i < upperLimit; i++)
{
    if (SampleClass.SampleStaticMethodReturningBoolean(i))
    {
        sum += sampleObject.SampleMethodReturningInteger(i);
    }
}

명령문 구간

+/-

중괄호("{}")로 둘러쌓인 명령문 묶음은 코드의 구간을 형성한다. 다른 목적으로 명령문 구간내에서 정의된 변수의 구간을 제한하도록 제공한다. 명령문 구간은 중첩 될 수도 있고 주로 메서드의 본문으로 표현되기도 한다.

private void MyMethod(int value)
{  // 코드의 이부분은 "MyMethod()"의 본문이다.

   // integer 매개변수 'value'는 메서드의 모든곳에서 접근 가능하다.

   int methodLevelVariable; // 이 변수는 메서드의 모든곳에서 접근 가능하다.

   if (value == 2)
   {
      // methodLevelVariable는 이곳에서 여전히 접근 가능하다.
  
      int limitedVariable; // 이 변수는 오직 이 if문 구간의 코드에서 접근 가능하다.

      DoSomeWork(limitedVariable);
   }
   
   // limitedVariable는 이곳에서 더 이상 접근 할 수 없다.
    
}  // 이곳에서 "MyMethod()"의 본문을 위한 코드 구간이 종료된다.

주석

+/-

주석은 소스코드내에서 본문을 설명하는 것을 허용하는 부분이다. C# 컴파일러는 주석을 무시한다. 다음은 C#에서 허용하는 주석의 형태들 이다.

한 줄 주석
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 "//" 주석 표시
여러 줄 주석
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.
//이 주석 형태는 한줄 한정하여 사용합니다.
/* 
   이것은 주석의 다른 형태 입니다
   이것은 여러줄을 허용합니다.
*/
XML 문서 주석
이 주석들은 XML문서를 생성하기 위해 사용한다. 한줄과 여러줄 스타일을 사용할 수 있다. 한줄 형태는 각 줄의 주석이 시작되는 곳에 "///"를 사용하며, 여러 줄 형태일 경우에는 "/**" 와 "*/"를 사용한다.
/// <summary> 여기에 설명하시오 </summary>
/// <remarks>
///     이것은 싱글라인 XML 문서 주석이다.
/// </remarks>


/** 
 * <summary> 여기에 설명하시오 </summary>
 * <remarks>
 *     이것은 멀티라인 XML 문서 주석이다.
 * </remarks>
 */

대/소문자 구분

+/-

C#은 변수와 메서드의 이름을 포함하여 대소문자 구분을 합니다.

C#은 대소문자를 구분 하기 때문에 아래의 변수 myIntegerMyInteger 은 다른 변수 입니다.

 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.

 // 컴파일러 오류!
 console.writeline("Hello");

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

 Console.WriteLine("Hello");