2013-07-17 5 views
0

У меня есть следующий супер класс:метод унаследует бросает ошибку

abstract class ContactQueue 
{ 

    public abstract DateTime period { 
     get; set; } 
    public abstract String type { get; set; } 
    public abstract String toString(); 
    public String ReWritePeriod(String choice) 
    { 
     new CultureInfo("da-DA"); 
     switch (choice) 
     { 
      case ("Day"): 

       return period.ToString("ddd"); 

      case ("Week"): 

       return ""+period.ToString("ddd")+" Uge: "+weekNumber(period); 

      case ("Year"): 

       return period.Year.ToString(); 

      default: 
       return ""; 
     } 

    } 
    private int weekNumber(DateTime fromDate) 
    { 
     // Get jan 1st of the year 
     DateTime startOfYear = fromDate.AddDays(-fromDate.Day + 1).AddMonths(-fromDate.Month + 1); 
     // Get dec 31st of the year 
     DateTime endOfYear = startOfYear.AddYears(1).AddDays(-1); 
     // ISO 8601 weeks start with Monday 
     // The first week of a year includes the first Thursday 
     // DayOfWeek returns 0 for sunday up to 6 for saterday 
     int[] iso8601Correction = { 6, 7, 8, 9, 10, 4, 5 }; 
     int nds = fromDate.Subtract(startOfYear).Days + iso8601Correction[(int)startOfYear.DayOfWeek]; 
     int wk = nds/7; 
     switch (wk) 
     { 
      case 0: 
       // Return weeknumber of dec 31st of the previous year 
       return weekNumber(startOfYear.AddDays(-1)); 
      case 53: 
       // If dec 31st falls before thursday it is week 01 of next year 
       if (endOfYear.DayOfWeek < DayOfWeek.Thursday) 
        return 1; 
       else 
        return wk; 
      default: return wk; 
     } 
    } 
} 

И у меня есть следующий класс, наследующий вышеупомянутый класс:

class Callback : ContactQueue 
{ 
    public int completedCallbacks{get; set;} 
    public int completed_within_timeframe{get; set;} 
    public int answerPercentage { get; set; } 
    public override String type {get; set;} 
    public override DateTime period { get; set; } 
    public Callback(String type,DateTime period) 
    { 
     this.type = type; 
     this.period = period; 
    } 
    public override String toString() 
    { 
     return type; 
    } 
} 

Теперь я хотел проверить, если мой метод унаследует фактически работал поэтому я сделал следующее:

 Callback cb = new Callback("Callback",start); 
     MessageBox.Show(cb.ReWritePeriod("Day")); 

И в этот момент моя программа выдает сообщение об ошибке!

Что я делаю неправильно?

Сообщение об ошибке

The invocation of the constructor on type 'Henvendelser.MainWindow' that matches the specified binding constraints threw an exception. 
+2

И ошибка ...? И это происходит на какой линии ...? И как только вы запустили его через отладчик и подтвердили свою информацию, вы подозреваете, что общая окрестность проблемы ...? –

+0

Ive обновил мое сообщение с ошибкой! –

+0

Похоже, что это не связано. Что произойдет, если вы удалите «MessageBox»? Просто назовите 'cb.ReWritePeriod (« День »)' и не сообщите об этом? EDIT: Это вообще связано с вопросом, который вы задали [здесь] (http://stackoverflow.com/questions/17594172/import-exception)? –

ответ

2

кажется, что ошибка (и причина, за исключением в) в строке

new CultureInfo("da-DA"); 

Там нет такой культуры "да-DA". Вы имеете в виду «de-DE» (Германия) или «da-DK» (Дания)?

+0

Согласно http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo(v=vs.71).aspx есть? –

+0

@MarcRasmussen Извините, но все, что я вижу, есть либо 'da', либо' da-DK', а не 'da-DA'. –

+1

MSDN упоминает только «da-DK» (Дания), а не «da-DA» –

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