字段初始值设定项不能引用非静态字段、方法或属性C#
本文关键字:字段 静态 方法 属性 不能 引用 | 更新日期: 2023-09-27 18:27:46
我需要从一个类到另一个类获取列表。然而,我仍然会犯这个错误。
字段初始值设定项不能引用非静态字段、方法或属性
我读到我必须让smth成为构造函数,但是什么都不起作用。
提前感谢!
namespace NovejKalendar
{
class Program
{
static void Main(string[] args)
{
Calendar c = new Calendar();
Day d = new Day();
c.AddRecord();
c.Print();
//Day d = new Day();
Console.ReadKey(true);
}
}
class Homework
{
public DateTime dt;
public string subject;
public string content;
public Homework(DateTime dt, string subject, string content)
{
String.Format("{0:d.m.yyyy HH:mm}", dt);
//String.Format("{0:d/M/yyyy HH:mm:ss}", dt); // "9.3.2008 16:05:07"
this.dt = dt;
this.subject = subject;
this.content = content;
}
}
class Day
{
List<Homework> hw = new List<Homework>();
public List<Homework> GetList()
{
hw = new List<Homework>();
return hw;
}
}
class Calendar
{
//List<Homework> hw = new List<Homework>();
Day d = new Day();
List<Homework> hw = d.GetList();
//List<Homework> hw = new List<Homework>();
public void AddRecord()
{
string a = "9.3.2008 16:05";
string b = "19.12.2009 16:40";
string c = "29.5.2005 16:55";
hw.Add(new Homework(Convert.ToDateTime(a), "M", "ONE"));
hw.Add(new Homework(Convert.ToDateTime(b), "F", "TWO"));
hw.Add(new Homework(Convert.ToDateTime(c), "INF", "THREE"));
}
public void PrintCollection<T>(IEnumerable<T> col)
{
foreach (var a in col)
Console.WriteLine(hw);
}
public void Print()
{
foreach (var p in hw)
{
Console.WriteLine("{0} {1} {2}", p.dt, p.subject, p.content);
}
}
}
}
您不能像这样直接初始化字段:
List<Homework> hw = d.GetList();
相反,只需定义变量并在类构造函数中对其进行初始化。
class Calendar
{
List<Homework> hw;
public Calendar()
{
hw = d.GetList();
}
...
}
错误消息对此很清楚。。
字段初始值设定项不能引用非静态字段、方法,或财产"