Jess
Jess

Reputation: 121

"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.

Upvotes: 4

Views: 22174

Answers (2)

Steve Wong
Steve Wong

Reputation: 2256

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)

Upvotes: 5

SouthShoreAK
SouthShoreAK

Reputation: 4296

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.

Upvotes: 24

Related Questions