Es kommt darauf an, wie Sie die Terminologie betrachten - was davon abhängt, ob Sie über C# oder die CLI-Spezifikation sprechen. Zum Beispiel besagen die Abschnitte 8.9.8 und 8.9.10 der CLI-Spezifikation (ECMA-355):
Werttypen erben nicht, obwohl der zugehörige geboxte Typ ein Objekttyp ist und daher von anderen Typen erbt.
und
In ihrer unboxten Form erben Werttypen nicht von einem Typ. Geboxte Werttypen erben direkt von System.ValueType
es sei denn, es handelt sich um Aufzählungen, die in diesem Fall von System.Enum
erben. Geboxte Werttypen sind versiegelt.
Von der Sicht der CLI aus betrachtet ist die Antwort auf die Frage also nein.
Allerdings werfen wir einen Blick auf die C#-Spezifikation - und da wir uns in Stimmung wie bei ECMA befinden, wählen wir diese Version (die derzeit bei C# 2 stecken geblieben ist). Abschnitt 11.1.1 besagt:
Alle Werttypen erben implizit von der Klasse System.ValueType
, die wiederum von der Klasse object
erbt.
Von der Sicht der C#-Spezifikation aus betrachtet ist die Antwort also ja.
Man könnte argumentieren, dass Sie Ihre Frage mit ".net" getaggt haben, also sollten wir die CLI-Definition verwenden; wenn Sie es mit "c#" getaggt hätten, sollten wir die C#-Definition verwenden. Sehen Sie, wie willkürlich das ist? :)
All dieses Spezifikations-Tauchen dient jedoch nicht wirklich einem praktischen Zweck. Die Antwort hängt von den Feinheiten der Definitionen ab. Es ist sinnvoller, eine interessante Situation zu konstruieren, in der es darauf ankommt... also, was möchten Sie tun? Wenn Sie etwas Code vorlegen können, können wir Fragen beantworten, was passieren wird - und das ist wichtiger als Definitionen.
(Ja, das ist ungewöhnlich für mich - im Allgemeinen ist mir die Terminologie sehr wichtig. In einigen Fällen sind die Feinheiten jedoch eher ein Fluch als ein Segen.)