2016-09-09 2 views
0

Java langオブジェクトを特定のクラスタイプ(アカウント)にキャストしようとしています。キャスト中にジェネリック環境以外のエラーでは制約が許可されていません。

public static T Cast(Object obj) where T : class 
{ 
    var propertyInfo = obj.GetType().GetProperty("Instance"); 
    return propertyInfo == null ? null : propertyInfo.GetValue(obj, null) as T; 
} 

それは

制約がジェネリックではない環境では許可されていないエラーを投げています。

私は過去2日間ここにぶち壊されています。

+0

、あなたはそれを使用しているあなたの方法にジェネリック型パラメータ<T>を追加する必要があります。 – mok

+0

この質問はXamarinとは何の関係もなく、C#を使用するときはJavaのlangオブジェクトではありません。 – slfan

+0

@slfanはい、私はJavaの部分がどこにあるのか考えていましたか? – mok

答えて

4

あなたは

あなたはどこにでもTを定義していない
public static T Cast<T>(Object obj) where T : class 
{ 
    var propertyInfo = obj.GetType().GetProperty("Instance"); 
    return propertyInfo == null ? null : propertyInfo.GetValue(obj, null) as T; 
} 
関連する問題