4

さて、インターフェイス (データを表示するウィンドウ フォーム) からメソッド GetClassAverage() を呼び出す際に問題が発生しています。次のエラーも表示されます「修飾子パブリックはこのアイテムに対して有効ではありません」...これは私のIService.csファイルのコードです

[ServiceContract]
public interface IClassRollService
{
    [OperationContract]
    List<Student> GetStudentList(int semester);
    [OperationContract]    
    double GetClassAverage(int anything);
}

私のService.csファイルには

public double GetClassAverage()
{
    double sum = 0.0;
    double total;
    foreach (Student S in Students)
    {
        sum += S.Average;
    }
    return total = sum / Students.Count();
}

私のWindowsフォームでは、client.GetStudentList()を呼び出してグリッドビューを埋めますが、GetClassAverage()では機能しません

私は何を間違っていますか、または何が欠けていますか?

[編集] 既にパブリックを取り出しましたが、まだ Windows フォームからメソッドを呼び出すことができません。そのメソッドから返された値を Windows フォームに取得できる他の方法はありますか。これは、私が知っているWebサービスと関係があります。

4

2 に答える 2

24

インターフェイスでは、すべてのメソッドが定義によりパブリックです。そのため、「public」は無効であることがわかります。インターフェイスのメソッド定義から「public」キーワードを削除するだけで、すべて問題ありません。

于 2012-04-14T15:16:46.890 に答える
5

編集した IService.cs は問題ないようです。インターフェイスに一致するように Service.cs の実装シグネチャを変更する必要があります。

public double GetClassAverage()

public double GetClassAverage(int anything)
于 2012-04-14T16:11:24.747 に答える