Sie können sicherlich statische (geteilte) Methoden in abstrakten Klassen haben. Sie können sie jedoch nicht in Schnittstellen haben.
Es klingt wie Sie wirklich wollen virtuelle statische/geteilte Methoden - und diese sind nicht verfügbar. Statische Methoden werden nicht polymorphisch genannt, und mit der Art, wie am meisten von .NET funktioniert, würde das nicht viel Sinn machen. Es wäre sinnvoll, statische Methoden in Interfaces angeben zu können, wenn diese als Typ-Parameter-Constraints verwendet werden - an idea I've blogged about before now.
Delphi hat das Konzept einer Meta-Klasse, wo (wie ich es verstehe) Instanz Methoden in einer Klasse Meta-Klasse sind wie statische Methoden in der Klasse selbst - und eine Meta-Klasse kann von einem anderen ableiten, die Methoden usw. Ich bin kein Delphi-Programmierer, aber chapter 2 of Delphi in a Nutshell könnte Ihnen nützlich sein, wenn Sie weitere Informationen wünschen.
Java erlaubt die Angabe von Konstanten in Schnittstellen, aber das ist die einzige Art von statischem Member, die dort unterstützt wird.
Interessanterweise erlaubt die CLI selbst statische Methoden in einer Schnittstelle, aber das ist Methoden mit Körpern - nicht nur die Signatur, die von Instanzelementen einer Schnittstelle bereitgestellt wird.
Vielleicht sollten Sie Ihre Frage klären. Was genau meinst du mit "geteilt". Sie können Funktionen (oder Methoden) in abstrakten Klassen haben, die von abgeleiteten Klassen und anderen Klassen verwendet werden können - das ist der springende Punkt. –
@ Christian.K 'Shared' ist zu VB, was 'statisch' ist C# – Grokodile
@panamack: Duh! Vielen Dank. Ratet mal, dass sich "Public static (Shared in Visual Basic)" MSDN Phrase für mich nicht gelohnt hat ;-) –