2016-07-29 2 views
1

Я постоянно говорю об этом, когда я пытаюсь использовать метод:ссылка на объект Требуется (GetWeekOfYear)

Ссылка на объект требуется для 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; 
} 

И я не могу понять, почему. Что мне не хватает?

+0

Способ найден в 'System.Globalization;' – OmniOwl

ответ

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

+0

Alright спасибо. Я думал, что это статический метод. derp – OmniOwl

+0

Бывает, добавлено некоторое объяснение для будущих читателей. – Steve

0

нужен экземпляр класса

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

Смежные вопросы