简体   繁体   中英

“The modifier public is not valid for this item” on an Interface Method

Okay, so I am having problems calling the method GetClassAverage() from the interfacce (the windows form displaying the data). I get the following error too "The modifier public is not valid for this item"... this is the code on my IService.cs file

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

In my Service.cs file I have

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

On my windows form I fill a gridview by calling client.GetStudentList() but it does not work for GetClassAverage()

What am I doing wrong or what am I missing?

[EDIT] Already took out the public but I still can't call the method from the Windows Form. Is there any other way I can get the returned value from that method into to the windows form. This has something to do with the web services, that much I know.

In an interface, all methods are public by definition. That is why it tells you "public" is not valid. Just remove the "public" keyword from your interface's method definition and everything will be fine.

Your edited IService.cs looks good. You need to change your implementation signature in Service.cs to match your interface:

public double GetClassAverage()

to

public double GetClassAverage(int anything)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM