Gelegentlich braucht man sie halt doch: Zufallszahlen.
Der Code ist recht übersichtlich:
Random rnd = new Random();
int Zufallszahl = rnd.Next(1,1000);
rnd.Next(1,1000) erzeugt eine zufällige Zahl zwischen 1 und 1000.
Die schnellste Möglichkeit zu erkennen, ob es sich bei einer Zahl um eine gerade oder ungerade Zahl handelt, führt über den letzen Bit einer Ganzzahl.
using System;
im Code am Beispiel einer Console:
int i = 0;
Console.WriteLine(“Bitte geben Sie eine Zahl ein:“);
i = int.Parse(Console.ReadLine());
if ((i & 1) == 1)
{
Console.WriteLine(“Das ist eine UNGERADE Zahl“);
}
else
{
Console.WriteLine(“Das ist eine GERADE Zahl“);
}
(i & 1) verknüpft nun alle Bits mit einer UND-Anweisung. Dabei wird jedes Bit mit mit dem dazugehörenden Bit von 1 kombiniert. Ist eins GLEICH 0, wird das entsprechende Bit auch auf 0 gesetzt:
0110 0001
& 0000 0001
———-
0000 0001
Damit sitzt das letzte Bit auf 1 und ist somit UNGERADE…
Um schnell z.B. alle Textdateien in einem Verzeichnis zu löschen, kann folgender Code-Schnippsel herhalten:
private void DeleteTextFiles()
{
string Path2Files = “C:\MeinOrdner”;
string FileExt = “.txt”;
string[] GetTxtFiles = Directory.GetFiles(Path2Files);
int i = 0;
for (i = 0; i < GetTxtFiles.Length; i++)
{
if (GetTxtFiles[i].ToString().EndsWith(FileExt))
File.Delete(GetTxtFiles[i].ToString());
}
}
Um die IP-Adresse des aktuellen Benutzers herauszufinden, wird folgender Code verwendet:
using System.Net;
IPHostEntry IPHost = Dns.GetHostEntry(Dns.GetHostName());
GetIP = IPHost.AddressList[0].ToString();
IPHost.AddressList[i] gibt die IP-Adressliste zurück, bei Vista ist der Wert [0] die IPv6-Adresse. In diesem Fall müsste auf IPHost.AddressList[1] referenziert werden.
Um zu überprüfen, ob es sich um eine gültige IP-Adresse handelt, kann man sich dieser Funktion bedienen:
private bool IsValidIPAddress(string GetIPAddr)
{
try
{
IPAddress.Parse(GetIPAddr);
return true;
}
catch (Exception e)
{
return false;
}
}
Funktionsaufruf:
bool IsValidIPAddr = IsValidIPAddress(GetIP);
Neben dem bereits beschriebenen BEEP bietet sich noch die (elegantere) Möglichkeit einen WAVE-Sound auszugeben.
Um das WAVE-File nicht gesondert ausliefern zu müssen wird dieses über <<Projekt – Applikationsname-Eigenschaften>> – Tab <<Ressourcen>> in die Resources.resx eingebettet. So z.B. ein Wave-File mit dem Namen “alert.wav”.
Im Form wird nun folgender Code hinterlegt:
using System.Media;
private void PlayAlert()
{
System.Media.SoundPlayer player = _
new System.Media.SoundPlayer();
player.Stream = WindowsApplication1.Properties.Resources. ↙
ResourceManager.GetStream(“alert”);
player.Play();
}
Wenn man so mit der Gestaltung einer C#-Windows-Applikation beschäftig ist, so stellt sich früher oder später die Frage nach einem Hinweiston, der bspw. dann abgespielt wird, wenn eine Ausnahme auftritt.
Hierfür bietet sich zunächst der klassische Windows-Beep an, der aus den integrierten PC-Lautsprechern kommt:
using System.Runtime.InteropServices;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
[DllImport("Kernel32.dll")]
public static extern bool Beep(UInt32 frequency, UInt32 duration);
private void BeepIt()
{
Beep(1000, 50);
System.Threading.Thread.Sleep(100);
Beep(1000, 50);
System.Threading.Thread.Sleep(100);
Beep(1000, 50);
}
}
}
Beep(uint frequency, uint duration) kann über die Methoden Höhe und Dauer des Beep einstellen…