using keywordet er en måde at sige "Jeg anvender variablen indenfor scope, ryd op efter mig bagefter". Compileren genererer kode, der sikrer at din instans, i dette tilfælde file, disposes når den går ud af scope - også hvis der smides exceptions, etc. Idet WavFile anvender en FileStream, er vi interesseret i at sikre at den lukkes når der ikke er behov for den længere - derfor bruges using.
Det der sker i blokken er at file objektet (som er en instans af WavFile klassen) anvendes til at læse info samt nogle få samples ud fra filen.
"var" er indført i C# 3.0, og er en ny sprogfeature som kaldes implicit typing. Det den gør er essentielt at sige "erklær en variabel af den type der står højre i udtrykket", i dette tilfælde WavFile. Jeg kunne også have skrevet
WavFile file = new WavFile(new FileStream(args[0],FileMode.Open,FileAccess.Read))
Det ville have givet nøjagtig samme IL. Lidt forenklet er "var" altså en måde at spare lidt tastearbejde på. Hvis du bruger C# 2.0, kan du ikke compile kode der bruger "var", i så fald skal du erstatte alle brug af var med den eksplicitte erklæring.
Her er en gennemgang af de vigtigste nye ting, C# 3.0 byder på:
http://dotnetslackers.com/articles/csharp/Csharp_3_0_An_Introduction.aspx