In diesem Beispiel wird der Name und die ID eines neuen Angestellten eingelesen, der Angestelltenzähler um eins erhöht und die Informationen für den neuen Angestellten sowie die neue Angestelltenzahl angezeigt. Der Einfachheit halber wird bei diesem Beispiel die Angestelltenzahl über die Tastatur eingegeben. In einer realen Anwendung sollten diese Informationen jedoch aus einer Datei eingelesen werden.
// cs_static_keyword.cs
using System;
public class Employee
{
public string id;
public string name;
public Employee()
{
}
public Employee(string name, string id)
{
this.name = name;
this.id = id;
}
public static int employeeCounter;
public static int AddEmployee()
{
return ++employeeCounter;
}
}
class MainClass : Employee
{
static void Main()
{
Console.Write("Enter the employee's name: ");
string name = Console.ReadLine();
Console.Write("Enter the employee's ID: ");
string id = Console.ReadLine();
// Create and configure the employee object:
Employee e = new Employee(name, id);
Console.Write("Enter the current number of employees: ");
string n = Console.ReadLine();
Employee.employeeCounter = Int32.Parse(n);
Employee.AddEmployee();
// Display the new information:
Console.WriteLine("Name: {0}", e.name);
Console.WriteLine("ID: {0}", e.id);
Console.WriteLine("New Number of Employees: {0}",
Employee.employeeCounter);
}
} Eingabe
Tara Strahan
AF643G
15
Beispielausgabe
Enter the employee's name: Tara Strahan
Enter the employee's ID: AF643G
Enter the current number of employees: 15
Name: Tara Strahan
ID: AF643G
New Number of Employees: 16
Dieses Beispiel zeigt, dass es zwar möglich ist, ein statisches Feld mit einem anderen statischen, noch nicht deklarierten Feld zu initialisieren, die Ergebnisse jedoch undefiniert bleiben, solange dem statischen Feld nicht explizit ein Wert zugewiesen wird.
// cs_static_keyword_2.cs
using System;
class Test
{
static int x = y;
static int y = 5;
static void Main()
{
Console.WriteLine(Test.x);
Console.WriteLine(Test.y);
Test.x = 99;
Console.WriteLine(Test.x);
}
} Ausgabe
0
5
99