Ich erhalte den Fehler:
'string []' enthält keine Definition für 'Cast' und keine Erweiterungsmethode 'Cast', die ein erstes Argument vom Typ 'string []' akzeptiert, könnte gefunden werden (fehlt eine using-Direktive oder eine Assembly-Referenz? )
auf dem folgenden Stück Code:
%Vor%Was brauche ich mit einer Direktive oder Assembly-Referenz? Wie finde ich solche Dinge heraus?
Ich bin ein Anfänger bei C # und .NET, ich kopiere nur Code, um einen Job zu erledigen, also werde nicht zu technisch mit mir.
(1) Stellen Sie sicher, dass Sie an C # 3.0 +
arbeiten(2) Stellen Sie sicher, dass Ihr Code enthält:
%Vor% (3) .Cast
ist eine generische Methode. Sie müssen den type-Parameter wie folgt angeben:
Das passiert normalerweise, wenn Sie using System.Linq;
am Anfang Ihrer Datei verpassen.
Sie müssen auch .NET 3.5 oder höher verwenden, damit es funktioniert. System.Linq
befindet sich in der Assembly System.Core.dll, die standardmäßig in Projekten enthalten ist, die .NET 3.5 oder höher verwenden.
BEARBEITEN
Bei näherer Betrachtung funktioniert dieser Code niemals wie geschrieben, weil die Methode Enumerable.Cast()
generisch ist und Sie den Typ übergeben müssen, an den Sie casten: z. mNames.Cast<object>().ToArray();
Normalerweise rufen Sie die Erweiterungsmethode Cast<T>()
mit einem Typargument wie mNames.Cast<SomeType>()
auf.
Wie auch immer, mNames
scheint bereits ein string[]
zu sein, also worum willst du es spielen?
Casting zu object
wäre nicht notwendig, da object[]
von string[]
zugewiesen werden kann.
Auch wenn Sie "Cast" nicht explizit verwenden, wird dieser Kompilierfehler auch auftreten, wenn Sie Linq-Ausdrücke verwenden und "system.Linq;" vergessen.
Tags und Links c#