C#’ta methodlar, bir sınıf ya da nesne tarafından gerçekleştirilen hesaplamaları ya da eylemleri uygulayan üyelerdir. Static methodlara sınıflar aracılığıyla erişilebilirken, Instance (örnek) methodlara bir sınıfın örneği tarafından erişilebilir.
Methodlar bir parametre listesine (boş olabilen) sahip olabilir ki bunlar methoda geçirilen değer ya da değişkenlere referans gösterirler. Bununla birlikte bir geri dönüş tipine sahip olabilirler (return type) ki bu da method içinde hesaplanan değerlerin programa geri vereceği değeri belirler. Eğer bir methodun geri döüş tipi “void” ise, o method bir değer döndürmez.
Tıpkı tipler gibi, methodlar da, bir takım tip parametre setlerine sahip olabilirler. Bunun amacı method çağırıldığında, hangi tiplerin belirlenmesi gerektiğidir.
Bir method imzası (signature), sınıf içerisinde eşsiz bir değer olmalıdır. Bir method imzası; var olan methodun ismi, tip parametrelerin sayısı, erişim düzenleyicileri (modifier) ve parametrelerin tiplerinden oluşur. Method imzası geri dönüş tipi içermez.
Önemli: Generic tiplerin şanssız bir sonucu olarak, yapısal bir tip (constructed type), özdeş imzalar içeren iki farklı methoda sahip olabilir. Örneğin;
class Sınıf<T> { void Method(T t){} void Method(int t){} }
şeklide bir kod hiçir hata içermez. Fakat Sınıf<int>’in özdeş imzalara sahip iki farklı methodu olmuş olur. Daha sonra göreceğimiz gibi, bu durum method’ların aşırı yüklenmesinde ve arayüz implementasyonlarında bazı ilginç senaryolara yol açar. İyi bir yönlendirme olarak; bunu yapmayın.