Interface-Deklaration mit internal

broetchen

Erfahrenes Mitglied
moin

Ich habe mir ein Interface definiert:
Code:
internal interface IFile
{
	DataTable GetPeriodData();
}

Nun habe ich dieses Interface in einer Klasse implementiert:
Code:
internal class AsciiFile : IFile
{
                      ......

	internal DataTable GetPeriodData()
	{
                           ......
	}
}

Aber der Compiler meckert mit folgendem Text:
Compiler hat gesagt.:
D:\Testreferenzjahr2005\Testreferenzjahr2005\Data\AsciiFile.cs(10): 'Testreferenzjahr2005.Data.AsciiFile' implementiert den Schnittstellenmember 'Testreferenzjahr2005.Data.IFile.GetPeriodData()' nicht. 'Testreferenzjahr2005.Data.AsciiFile.GetPeriodData()' ist statisch, nicht öffentlich oder hat den falschen Rückgabewert.

Was hat das auf sich? Und wie werd ich das wieder los?
 
:p jetzt geht es.

Code:
DataTable IFile.GetPeriodData()
{
     return GetPeriodData();
}

internal DataTable GetPeriodData()
{
   ...
}

Warum kann man in Interfaces eigentlich keine Zugriffsmodifizierer setzen?
 
Sorry, hatte das jetzt grad wegen Stress nicht getestet und mich verzettelt.
Ich hab meinen Post gelöscht. Kann ja mal passieren :rolleyes:

Objekte, die in einem Interface definiert werden müssen afaik public || static sein.
Andernfalls musst Du sie über die Interface Definition in der Klasse verfügbar machen.
Code:
internal interface IFile {
	DataTable GetPeriodData();
}
internal class AsciiFile : IFile {

	DataTable IFile.GetPeriodData() {
		return GetPeriodData();
	}

	internal DataTable GetPeriodData() {
		return null;
	}
}
 
Zurück