C# Fundamentals
What is C#?
.Net Framework
Provides an environment to build and run .net framework applications
Common Language Runtime(CLR)?
The unit that executes .net framework applications
MS Intermediate Language(IL/MSIL)?
Portable Assembly for JIT
Just-In-Time (JIT) Compiler?
Converts IL/MSIL to assembly.
So applications can run on any .Net framework environment.
Namespaces
using System;
using System.Collections.Generic;
namespace MyProject
{
public class MyClass
{
...
}
}
Variables
<type> <name>;
int age;
Constants
const int x = 0;
const string productName = "Visual C#";
const double x = 1.0, y = 2.0, z = 3.0;
Statements
// Declaration statement. int counter; // Assignment statement. counter = 1; // foreach statement block that contains multiple statements. foreach (int radius in radii){}
Expressions
Console.WriteLine("Hello World")
y = x+5
myString = "Hi!";
if ( age == 15)
Operators
- + operator ... both math and string concatenation
- = operator ... variable assignment
- == operator ... test for equality
- () operator ... method invocation - Console.WriteLine()
- . operator ... member access
- > operator
- < operator
- etc...
Data Types
Type |
Alias For |
Allowed Values |
byte |
System.Byte |
Integer between 0 and 255 |
int |
System.Int32 |
Integer between −2147483648 and 2147483647 |
bool |
System.Boolean |
Boolean value, true or false |
string |
System.String |
A sequence of characters
etc... |
enumarations
enum Days { Sun, Mon, Tue, Wed, Thu, Fri, Sat }; //Starts from 0
//OR
enum Days { Sun = 1, Mon, Tue, Wed, Thu, Fri, Sat }; //Starts from 1
static void Main()
{
int x = (int)Days.Sun;
int y = (int)Days.Fri;
Console.WriteLine("Sun = {0}", x);
Console.WriteLine("Fri = {0}", y);
}
Arrays
type[] arrayName;
// Declare a single-dimensional array
int[] array1 = new int[5];
// Declare and set array element values
int[] array2 = new int[] { 1, 3, 5, 7, 9 };
// Alternative syntax
int[] array3 = { 1, 2, 3, 4, 5, 6 };
// Declare a two dimensional array
int[,] multiDimensionalArray1 = new int[2, 3];
// Declare and set array element values
int[,] multiDimensionalArray2 = { { 1, 2, 3 }, { 4, 5, 6 } };
Collections - List<T>
// Create a list of strings.
var salmons = new List<string>();
salmons.Add("chinook");
salmons.Add("coho");
salmons.Add("pink");
salmons.Add("sockeye");
// Create a list of strings by using a
// collection initializer.
var salmons = new List<string> { "chinook", "coho", "pink", "sockeye" };
Program Flow Control Mechanisms
- The if statement
- The switch statement
- Looping
"if" statement
if (<test>)
{
<code executed if <test> is true>;
}
else
{
<code executed if <test> is false>;
}
"switch" statement
switch (<testVar>)
{
case <comparisonVal1>:
<code to execute if <testVar> == <comparisonVal1> >
break;
case <comparisonVal2>:
<code to execute if <testVar> == <comparisonVal2> >
break;
…
default:
<code to execute if <testVar> != comparisonVals>
break;
}
"while" & "do while" loops
int i = 1;
while (i <= 10)
{
Console.WriteLine(″{0}″, i++);
}
int i = 1;
do
{
Console.WriteLine(″{0}″, i++);
} while (i <= 10);
"for" & "for each" loops
int i;
for (i = 1; i <= 10; ++i)
{
Console.WriteLine(″{0}″, i);
}
var salmons = new List<string> { "chinook", "coho", "pink", "sockeye" };
foreach (var salmon in salmons)
{
Console.Write(salmon + " ");
}
-
break—Causes the loop to end immediately
-
continue—Causes the current loop cycle to end immediately (execution continues with the next loop cycle)
-
goto—Allows jumping out of a loop to a labeled position (not recommended if you want your code to be easy to read and understand)
-
return—Jumps out of the loop and its containing function
Interrupting Loops
Classes & Objects
namespace ProgrammingGuide
{
// Class definition.
public class MyCustomClass
{
// Class members:
// Property.
public int Number { get; set; }
// Method.
public int Multiply(int num)
{
return num * Number;
}
// Instance Constructor.
public MyCustomClass()
{
Number = 0;
}
}
}
Properties
public string FullName { get; set; }
public int Age { get; set; }
public string Country { get; set; }
Fields
// private field private DateTime date; // public field (Generally not recommended.) public string day;
Constructors & Initialization
public class Taxi
{
public bool isInitialized;
public Taxi()
{
isInitialized = true;
}
}
class TestTaxi
{
static void Main()
{
Taxi t = new Taxi();
Console.WriteLine(t.isInitialized);
}
}
public class Employee
{
public int salary;
public Employee(int annualSalary)
{
salary = annualSalary;
}
public Employee(int weeklySalary, int numberOfWeeks)
{
salary = weeklySalary * numberOfWeeks;
}
}
//Usage
Employee e1 = new Employee(30000);
Employee e2 = new Employee(500, 52);
Access Modifiers
- public - The type or member can be accessed by any other code in the same assembly or another assembly that references it.
- private - The type or member can be accessed only by code in the same class or struct.
- protected - The type or member can be accessed only by code in the same class or struct, or in a class that is derived from that class.
- internal - The type or member can be accessed by any code in the same assembly, but not from another assembly.
- protected internal - The type or member can be accessed by any code in the assembly in which it is declared, or from within a derived class in another assembly. Access from another assembly must take place within a class declaration that derives from the class in which the protected internal element is declared, and it must take place through an instance of the derived class type.
// public class:
public class Tricycle
{
// protected method:
protected void Pedal() { }
// private field:
private int wheels = 3;
// protected internal property:
protected internal int Wheels
{
get { return wheels; }
}
}
Methods
public void Caller()
{
int numA = 4;
// Call with an int variable.
int productA = Square(numA);
int numB = 32;
// Call with another int variable.
int productB = Square(numB);
// Call with an integer literal.
int productC = Square(12);
// Call with an expression that evaulates to int.
productC = Square(productA * 3);
}
int Square(int i)
{
// Store input argument in a local variable.
int input = i;
return input * input;
}
Resources
thanks...
C# Fundamentals
By Barış SÖNMEZ
C# Fundamentals
An introduction to C# Programming Language
- 268