2014-10-28 3 views
0

I имеют общий интерфейс, определенный следующим образом:класс не реализует элемент интерфейса при использовании дженериков

interface INewRegionBoarding<T> where T: class 
{ 
    bool Create(T objectName); 
    bool ValidateData(T objectName); 
} 

Тогда, у меня есть класс, реализующий его:

public class ESafeActionService<T>: INewRegionBoarding<T> 
{ 
    public bool ValidateData(EsafeActons eSafe) 
    { 
     if (String.IsNullOrEmpty(eSafe.Corporation)) return false; 
     if (String.IsNullOrEmpty(eSafe.Region)) 
     { 
      return false; 
     } 
     else if (eSafe.Region.Length != 2) 
     { 
      return false; 
     } 

     return true; 
    } 

     public bool Create(EsafeActons eSafe) 
     { 
      return eSafe.Create(eSafe.Corporation, eSafe.Region, eSafe.PortfolioName); 
     } 
    } 

При его построении, у меня есть следующее сообщение об ошибке:

'ESafeActionService<EsafeActions>' does not implement interface member INewRegionBoarding<EsafeActions>.ValidateData(EsafeActions)'

ЭтоОпределениекласс:

общественного класса EsafeActons {

private string corporation; 
private string region; 
private string portfolioName; 

public EsafeActons(string corporation, string region, string portfolioName) 
{ 
    this.corporation = corporation; 
    this.region = region; 
    this.portfolioName = portfolioName; 
} 


public string Corporation 
{ 
    get { return this.corporation; } 
    set { this.corporation = value; } 
} 

public string Region 
{ 
    get{return this.corporation;} 
    set { this.region = value; } 
} 

public string PortfolioName 
{ 
    get { return this.corporation; } 
    set { this.portfolioName = value; } 
} 

public bool Create(string corporation, string region, string portfolioName) 
{ 
    //call stored proc 
    return true; 
} 

}

Я не совсем уверен, что я делаю неправильно.

Спасибо-х

+0

Какой язык? Обновите вопрос, чтобы добавить тег языка – Bohemian

ответ

2

I'm not really sure what I'm doing wrong

Вы держать класс родовое, но реализующий интерфейс с конкретным типом. Измените определение своего класса на:

public class ESafeActionService: INewRegionBoarding<EsafeActons> 
{