2017-04-21 6 views
0

Ich verwende C# mit .NET Core 1.1 unter OS X (Ziel Framework ist netstandard1.6) und ich bekomme einen seltsamen Fehler für eine fehlende Methode.Array enthält keine Definition für 'AsReadOnly'

using System; 
using System.Collections.ObjectModel; 

class Program 
{ 
    static void Main() 
    { 
     int[] array = { 1, 2, 3 }; 
     ReadOnlyCollection<int> result = Array.AsReadOnly(array); 
    } 
} 

Kompilation des Programms obigen Ergebnisse im

Fehler gezeigt
error CS0117: 'Array' does not contain a definition for 'AsReadOnly' 

Ist AsReadOnly nicht in .NET-Core oder bin ich etwas fehlt noch?

+0

Basierend auf https://docs.microsoft.com/en-us/dotnet/api/system.array.asreadonly--1?view=netstandard-1.6#System_Array_AsReadOnly__1___0___, sieht es so aus, als ob es nicht unterstützt wird. – vyrp

+3

Aber Sie können immer 'neue ReadOnlyCollection (Array) ' – vyrp

+0

Die Implementierung ist nur' return new ReadOnlyCollection (Array); 'so denke ich, können Sie es einfach so machen. –

Antwort

2

The Array.AsReadOnly method existiert tatsächlich nicht in .Net Core 1.x und .Net Standard 1.x.

Es wird in .Net Core 2.0 und .Net Standard 2.0 enthalten sein. In der Zwischenzeit können Sie new ReadOnlyCollection<int>(array) verwenden, wie bereits vorgeschlagen.

Verwandte Themen