2013-10-17 15 views
6

Bir işlevin C# parametresinde belirtilen türde bir değer döndürmesinin mümkün olup olmadığını merak ediyorum. İşte yapmak istediğimC# - Bir işlevin dönüş türü, bir parametrenin değeriyle aynıdır

:

public ReturnValueUndefined function(undefinedType value) 
{ 
    return value; 
} 

benim fonksiyon parametre olarak herhangi bir sınıf almak ve aynı sınıfa dönmek istiyorum, çünkü bu kullanmak istiyorum.

Teşekkür ederiz!

+0

olası bir kopyası [Bir yöntemin türünü nasıl döndürürüm?] (Http://stackoverflow.com/questions/9808035/how-do-i-make-the-return-type-of-a -method-jenerik) –

cevap

18

Genel bir işlev istiyorsanız. derleyici yalnızca tek sen jenerik yönteme bir where sınırlaması ekleyebilir vb Eşittir, ToString, gibi temel işlemleri böylece T bir nesne parametresi varsaymak olduğunu varsayabiliriz akılda

public T YourFunctionName<T>(T value) 
{ 
    return value; 
} 

tutun sınıf veya yapı gibi somut bir şeydir.

public T YourFunctionName<T>(T value) where T : class 
{ 
    return value; 
} 

aslında sadece birden tipleri aynı tedavi etmek bir temel sınıf veya arayüzü kullanmak isteyebilirsiniz iyi bir şans olmasına rağmen. Genel bir yöntem kullanırken, o desende yapmak isteyebileceğiniz şeyleri yapamazsanız, hızlı bir şekilde gerçekleştireceksiniz. Kısıtlama, genel yönteminizi yalnızca belirli bir arabirim türü üzerinde çalışmak için kısıtlamanız gereken noktaya getiriyorsa, muhtemelen yöntemin yine de arabirimin bir parçası olmasını istersiniz.

+2

veya bir arayüz :) http://msdn.microsoft.com/en-us/library/bb384067.aspx – pollirrata

İlgili konular