Ungültiges Erstellungsdatum

Ein ziemlich merkwürdiges Verhalten zeigt sich, wenn ein FileInfo-Objekt mit einem Pfad erstellt wird, welcher nicht wirklich existiert:

Das CreationTime Property hat dann den Wert: 01.01.1601

Für mich unverständlich im “Zeitalter” von NullableTypes.

Generisches Enum.Parse

Da es in C#2 leider noch keine generische Parse-Methode für Enumerations gibt, muss man sich diese selbst schreiben.

C#:
  1.  
  2. public abstract class Enum<T> {
  3.         public static T Parse(string enumElementToParse) {
  4.                 if (Enum.IsDefined(typeof (T), enumElementToParse)) {
  5.                         return (T) Enum.Parse(typeof (T), enumElementToParse, true);
  6.                 }
  7.                 throw new ArgumentException("Enumeration element is not defined in: "+ typeof(T).FullName, enumElementToParse);
  8.         }
  9. }
  10.  

oder als typisierte statische Methode:

C#:
  1.  
  2. public static Parse<T>(string enumElementToParse) {
  3.         if (Enum.IsDefined(typeof (T), enumElementToParse)) {
  4.                 return (T) Enum.Parse(typeof (T), enumElementToParse, true);
  5.         }
  6.         throw new ArgumentException("Enumeration element is not defined in: "+ typeof(T).FullName, enumElementToParse);
  7. }
  8.  

PowerShell

Noch vor kurzem unter dem Namen Monad bekannt, gibt es nun PowerShell als RC1. Es handelt sich hierbei um eine in .NET geschriebene Shell mit Scripting Environment.

Sehr praktisch mit Console einzusetzen. Die Geschwindigkeit ist durch native Kompilierung via ngen noch steigerungsfähig.

In PowerShell eingeben:

cd $pshome
dir *.dll |
foreach { C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ngen.exe $_.FullName }

Um eigene Profile nutzen zu können, ist jedoch noch ein Registry-Eintrag zu modifizieren:

HKLM\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.Management.Automation.PowerShell

Sollte man auf UnRestricted bzw. RemoteSigned setzen.

Ein globales Profil kann dann in
C:\Dokumente und Einstellungen\All Users\Dokumente\PSConfiguration
angelegt werden(profile.ps1).

Ein nettes Feature Generischer Listen ist die Find Methode:

C#:
  1.  
  2. public class Bratwurst {
  3.    public string Geschmack = string.Empty;
  4. }
  5.  
  6. List<Bratwurst> bratwuerste = new List<Bratwurst>();
  7.  
  8. // insert some Bratwurst
  9.  
  10. string gesuchterGeschmack = "Lecker";
  11.  
  12. Bratwurst leckerBratwurst =
  13.   bratwuerste.Find(delegate(Bratwurst wurstToFind) {
  14.                      return wurstToFind.Geschmack == gesuchterGeschmack;
  15.                    });
  16.  

Guten Appetit!

Log4Net Viewer

Ein netter Log4Net-Web Viewer. LOG4NET Dashboard