需要对象引用(GetWeekOfYear)

时间:2016-07-29 12:27:55

标签: c#

当我尝试使用该方法时,我不断被告知:

  

非静态字段,方法或属性'System.Globalization.Calendar.GetWeekOfYear(System.DateTime,System.Globalization.CalendarWeekRule,System.DayOfWeek)'

需要对象引用
filter(List, PredName, Result)

我似乎无法弄明白为什么。我错过了什么?

2 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:0)

需要班级的实例

DateTime time = DateTime.Now;
GregorianCalendar calendar = new GregorianCalendar();
int week = calendar.GetWeekOfYear(time, CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday);