【发布时间】:2013-07-07 00:16:03
【问题描述】:
我正在尝试使用此方法使用包含一系列字符串的列表
public List<String> ListJobs(Job job)
{
List<String> ListJobs = new List<string>();
foreach (Job curjob in Jobs)
{
String jobAsString = curjob.ToString();
ListJobs.Add(jobAsString);
}
return ListJobs;
//Get the list of strings
我目前的结构是
JobLedger(全部包含在其中的列表)
然后是由Visit和Pickup继承的Job Parent类问题是,在上面的代码中,并没有在子类中使用覆盖的tostring方法,而是默认为父类。
public void NewerList()
//No Pickup display problem is here. Liststring refers to base sting method instead of child
{
LstJob.Items.Clear();
//Clears the list
List<String> listOfVis = TheLedger.ListJobs(Thejob);
//Get a list of strings to display in the list box
LstJob.Items.AddRange(listOfVis.ToArray());
}
我似乎已将其范围缩小到这段代码,列表调用父作业类,而不是任何一个子类
【问题讨论】:
-
什么是
Jobs?我只能看到ListJobs的定义。 -
Jobs声明在哪里?为什么不使用job?顺便说一句:Jobs.Select(job => job.ToString()).ToList()类似,但看起来更短。 -
您确实需要整理变量的命名等。 ListJobs 是一种类型,但在下面一行您使用 ListJobs 作为变量的名称。变量实际上应该以小写字母开头,除非它是常量,在这种情况下,所有大写单词都由_分隔
-
@JonTaylor:在 C# 中,常量通常不按照大写+下划线方案命名。这是 C 和 C++ 程序中使用的样式。在 C# 中,常量遵循与类和方法相同的命名规则:Pascal Case,即大驼峰式
-
@DanielHilgarth 我的立场是正确的,但是这甚至是合法的代码吗?如何确定在 ListJobs 类上调用静态方法或在 ListJobs 变量上调用实例方法之间的区别?我自己从来没有使用过 C#,但是将变量命名为与类完全相同仍然很糟糕?
标签: c# inheritance methods polymorphism