2012-04-14 65 views
3

好吧,所以我有問題調用方法GetClassAverage()從interfacce(窗體顯示數據)。我碰到下面的錯誤太 「的修改公開是不適用於這個項目」 ......這是代碼我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形成我填一個GridView通過調用client.GetStudentList(),但它並不適用於GetClassAverage()

我在做什麼錯誤或我缺少什麼工作?

[編輯]已經拿出公開,但我仍然不能從Windows窗體調用方法。有沒有其他方法可以將該方法的返回值傳遞給窗體。這與我所知道的Web服務有關。

+1

關於您的編輯:'GetClassAverage()'實現*沒有實現接口的'GetClassAverage( int)'方法*因爲簽名不匹配。見史蒂夫王的答案。 – phoog 2012-04-14 16:29:50

回答

15

在一個接口中,所有方法都是按照定義公開的。這就是爲什麼它告訴你「公衆」是無效的。只需從界面的方法定義中刪除「public」關鍵字,一切都會好起來的。

+0

我拿出public關鍵字,但我仍然不能使用GetClassAverage()將數據綁定到標籤中。 @SouthShoreAK – Jess 2012-04-14 15:45:01

5

您編輯的IService.cs看起來不錯。您需要更改Service.cs您實現簽名,以配合您的接口:

public double GetClassAverage() 

public double GetClassAverage(int anything)