Bir çok uygulamada özellikle de uygulamalarin sunum (presentation) katmaninda asagidakine benzer kod parçalari görüyorum.
for(int i = 0; i < this.Controls.Count; i++)
{
     try
     {
          TextBox btn = this.Controls[i];
     }
     catch
     {
     }
}
Yani bir tür dönüsümünün geçerli olup olmadigi try-catch bloklari ile çözülmeye çalisiyor. Evet, bu yöntem istenilen sonuca ulastirir ama try-catch blogu çokta amaci dogrultusunda kullanilmamistir. Hepiniz biliyorsunuki try-catch bloklari sadece istisnai durumlari düzenlemek için kullanilmalidir. Ama bir button nesnesini textbox nesnesine atamak çok ta istisnai bir durum degildir. Bu tür durumlar için C#'taki as operatörü biçilmis kaftandir. Bakiniz, yukaridaki kod asagidaki sekilde yazilirsa daha güzel ve daha okunabilir olacaktir.
for(int i = 0; i < this.Controls.Count; i++)
{
     TextBox btn = this.Controls[i]  as TextBox;
     if(btn != null)
     {
           //isleme devam          
     }
 }
Yalniz unutmamak gerekir ki, as operatörü sadece referans türleri ile birlikte kullanilabilir.