Reputation: 103
I want to implement an interface that's quite simple :
public interface IProfession
{
List<string> jobSkills { get; set; }
void setSkills();
}
public class artisan : IProfession
{
int money = 1200;
public List<string> jobSkills;
public void setSkills(){
jobSkills.Add("baratin");
jobSkills.Add("marchandage");
jobSkills.Add("monde_naturel");
jobSkills.Add("royaume_natal");
jobSkills.Add("sagacite");
jobSkills.Add("statut");
jobSkills.Add("statut");
}
}
Vstudio tells me that Models.artisan does not implement interface member Models.IProfession.jobSkills.
Why? I have tried this too :
public class artisan : IProfession
{
int money = 1200;
protected List<string> jobSkills;
public List<string> _jobSkills
{
get { return jobSkills;}
set { jobSkills = value; }
}
public void setSkills(){
jobSkills.Add("baratin");
jobSkills.Add("marchandage");
jobSkills.Add("monde_naturel");
jobSkills.Add("royaume_natal");
jobSkills.Add("sagacite");
jobSkills.Add("statut");
jobSkills.Add("statut");
}
}
but it does not work either (same error). can someone explain what I'm missing? Thank you
Upvotes: 0
Views: 456
Reputation: 18137
You need
public List<string> jobSkills { get; set; }
Also in your method you need to initialize the list.
public void setSkills()
{
if(jobSkills == null)
jobSkills = new List<string>();
jobSkills.Add("baratin");
jobSkills.Add("marchandage");
jobSkills.Add("monde_naturel");
jobSkills.Add("royaume_natal");
jobSkills.Add("sagacite");
jobSkills.Add("statut");
jobSkills.Add("statut");
}
Upvotes: 1
Reputation: 77364
Your interface requires a property jobSkills. You will need to implement a property then:
public interface IProfession
{
List<string> JobSkills { get; set; }
void SetSkills();
}
public class Artisan : IProfession
{
public List<string> JobSkills { get; set; };
public void SetSkills()
{
}
}
Upvotes: 2