我想实现一个非常简单的界面:
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告诉我,Models.artisan没有实现接口成员Models.IProfession.jobSkills。
为什么呢?我也试过这个:
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");
}
}
但它也不起作用(相同的错误)。谁能解释我失踪的东西? 谢谢
答案 0 :(得分:2)
您的界面需要属性 jobSkills。您需要实现属性,然后:
public interface IProfession
{
List<string> JobSkills { get; set; }
void SetSkills();
}
public class Artisan : IProfession
{
public List<string> JobSkills { get; set; };
public void SetSkills()
{
}
}
答案 1 :(得分:1)
你需要
public List<string> jobSkills { get; set; }
同样在您的方法中,您需要初始化列表。
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");
}