2009-07-08 28 views

答えて

19

::のような

何か

public int SomeMethod(T t) where T : ISomeInterface 
{ 
    // ... 
} 

public interface ISomeInterface 
{ 
    int Age { get; } 
} 

はタイプではなく、基本クラスかもしれない - しかし、から何かが存在しなければなりませんコンパイラにはAgeのプロパティが確実にあることがわかります。

(C#4であなたが動的型付けを使用することができますが、それは実際にそれを正当化し、特に「特別」な状況だったしない限り、私はそれをしないだろう。)

+0

それを私にビートは...まだ、再び恥で私のポストを削除しました。 –

+0

ありがとう、今私は "T:IBlah"の意味を知っています。 – Blankman

9

Jonの答えに拡大。

さらに別の方法が

public int SomeMethod(T t, Func<T,int> getAge) { 
    int blah = getAge(t); 
    ... 
} 
+0

Grrrreattの心は似ていると思う:) – leppie

+0

Ow。頭が痛い。 :) –

+0

Func はパラメータとしてTをとり、intを返します。私はFunc がgetAge関数への両方の入力を参照していると考えました。 – Blankman

3

どの程度問題への機能的アプローチ取ることです。

public class Blah 
{ 
    public int SomeMethod(Func<int> get_age) 
    { 
    int blah = get_age(); 
    return blah; 
    } 
} 
+0

これはデリゲートを使用していますか? – Blankman

+0

はい、プレーンデリゲートです。 – leppie

関連する問題