2017-03-14 45 views
-2
public class Account 
{ 
} 
public class SpecificationBase<T> 
{ 
} 
public class AccountSearch : SpecificationBase<Account> 
{ 
} 
public class SearchBase<T> where T : SpecificationBase<T> 
{ 
} 
public class Start 
{ 
    public Start() 
    { 
     new SearchBase<AccountSearch>(); 
    } 
} 

Error: The type ' AccountSearch ' cannot be used as type parameter ' T ' in the generic type or method ' SearchBase<T> '. There is no implicit reference conversion from ' AccountSearch ' to ' SpecificationBase<AccountSearch> 'ジェネリック型で型パラメータ「T」として使用することはできませんまたは方法

+0

あなたの質問は、あなたのためにエラーを修正しますか?あなたはC#のジェネリックについて読んだことがありますか?そのエラーの上でF1を押すと、そのエラーを完全に解明した状態でMSDNにリダイレクトされます – Zinov

+2

質問はどういう意味ですか?エラーメッセージは、あなたの問題が何であるかにはっきりしているようです... – Chris

答えて

0

エラー自己について説明します。他の回答が事実上正しく、問題が離れて行くようになりますしながら}

public class Account 
{ 
} 
public class SpecificationBase<T> 
{ 
} 
public class AccountSearch : SpecificationBase<Account> 
{ 
} 
public class SearchBase<T> where T : SpecificationBase<Account> 
{ 
} 
public class Start 
{ 
    public Start() 
    { 
     new SearchBase<AccountSearch>(); 
    } 
} 

1

を、私は何を探していることは、次のだと思う:有効な変換を実行するための具体的なタイプに制限を変更し

public class Account 
{ 
} 
public class SpecificationBase<T> 
{ 
} 
public class AccountSearch : SpecificationBase<Account> 
{ 
} 
public class SearchBase<T, TModel> where T : SpecificationBase<TModel> 
{ 
} 
public class Start 
{ 
    public Start() 
    { 
     new SearchBase<AccountSearch, Account>(); 
    } 
} 
関連する問題