当我尝试使用该方法时,我总是被告知:
非静态字段,方法或属性'System.Globalization.Calendar.GetWeekOfYear(System.DateTime,System.Globalization.CalendarWeekRule,System.DayOfWeek)'的对象引用是必需的
private static int GetWeekNumber(DateTime time)
{
int week = GregorianCalendar.GetWeekOfYear(time, CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday);
return week;
}
而且我似乎无法弄清楚原因。我想念什么?
最佳答案
GregorianCalendar需要实例化,然后可以调用该方法
private static int GetWeekNumber(DateTime time)
{
GregorianCalendar cal = new GregorianCalendar();
int week = cal.GetWeekOfYear(time, CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday);
return week;
}
当在类名后使用方法名时,类开发人员应将该方法定义为静态(以使其在没有实例的情况下可用)。 GetWeekOfYear并非如此。此方法是一个实例方法,因此您需要GregorianCalendar类的实例。
C# reference: static vs instance methods
关于c# - 必须提供对象引用(GetWeekOfYear),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38658856/