“接口方法”中的“修饰符public对此项无效”

时间:2012-04-14 15:13:30

标签: c# interface

好的,所以我在从interfacce调用方法GetClassAverage()时遇到问题(显示数据的窗体)。我也得到以下错误 “修饰符public对此项无效”...这是我的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()来填充gridview,但它不适用于GetClassAverage()

我做错了什么或我错过了什么?

[编辑]已经公开但我仍然无法从Windows窗体调用该方法。有没有其他方法我可以从该方法获取返回值到Windows窗体。这与Web服务有关,我知道的很多。

2 个答案:

答案 0 :(得分:16)

在界面中,根据定义,所有方法都是公共的。这就是为什么它告诉你“公共”无效。只需从界面的方法定义中删除“public”关键字,一切都会好的。

答案 1 :(得分:5)

您编辑的IService.cs看起来不错。您需要在Service.cs中更改您的实现签名以匹配您的界面:

public double GetClassAverage()

public double GetClassAverage(int anything)