2017-04-21 63 views
0

我在OS X下使用C#與.NET Core 1.1(目標框架爲netstandard1.6),我得到一個奇怪的錯誤,爲一個缺少的方法。陣列不包含「AsReadOnly」的定義

using System; 
using System.Collections.ObjectModel; 

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

程序的編制在上面的錯誤結果顯示

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

AsReadOnly在.NET核心不可用,或者我失去了什麼東西?

+0

根據https://docs.microsoft.com/en-us/dotnet/api/system.array.asreadonly--1?view=netstandard-1.6#System_Array_AsReadOnly__1___0___,它看起來不受支持。 – vyrp

+3

但是你總是可以做'新的ReadOnlyCollection(array)' – vyrp

+0

這個實現只是'返回新的ReadOnlyCollection (array);'所以我想你可以這樣做。 –

回答

2

The Array.AsReadOnly method確實不存在於.Net Core 1.x和.Net Standard 1.x中。

它將包含在.Net Core 2.0和.Net Standard 2.0中。 在此期間,您可以使用new ReadOnlyCollection<int>(array),如已經提出。