2009-08-18 1 views
2

Ich bin mir nicht sicher, wo ich das gesehen habe, und ich bekomme sicherlich nicht die Syntax hinter dem Compiler. Kann das C# -Schlüsselwort 'class' als Teil einer Methodenparametersignatur verwendet werden?Verwenden Sie das Schlüsselwort 'class' als/in einem Methodenargument in C#

foo (string x, y-Klasse) { }

sonst jemand etwas sehen? danke, -gene

+1

Es hängt wirklich davon ab, wie Sie es nennen möchten; das könnte "Objekt", "Typ" oder Generika sein - möglicherweise auch ein paar andere. –

Antwort

8

Sollten Sie vielleicht Objekt verwenden? Es sieht so aus, als ob Sie versuchen, einen Parameter anzugeben, der einen beliebigen Typ haben kann. In diesem Fall sollten Sie ein Objekt verwenden, da alles davon abgeleitet wird.

2

Ich glaube nicht, dass Sie es wie in Ihrem Beispiel verwenden können, aber wenn Sie das Wort „Klasse“ als Parameter-Namen verwenden wollen, das ist machbar, indem sie es mit @ prefixing:

foo(string @class) { } 
2

Es ist möglich, die Wortklasse in in einer generischen Methodendefinition zu verwenden:

foo<T>(T object) where T:class 
0

verwenden Objekt, wenn Sie in der Lage sein wollen, y als etwas zu passieren:

foo(string x, class y) { } 

Verwenden Sie Generika, wenn Sie angeben möchten, dass y ein Objekt einer Klasse sein muss - beispielsweise keine Struktur oder ein internationales Objekt.

foo<MyType>(string x, MyType y) where MyType : class { }