0

次のように定義された汎用インターフェイスがあります。

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)'

これはESafeActionクラス定義です:

public class 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;
}

}

何が間違っているのかよくわかりません。

ありがとう

4

1 に答える 1

2

何が間違っているのかよくわかりません

クラスをジェネリックに保ちますが、特定のタイプのインターフェイスを実装しています。クラス定義を次のように変更します。

public class ESafeActionService: INewRegionBoarding<EsafeActons>
{
于 2014-10-28T22:01:52.187 に答える