2017-04-21 42 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),如已经提出。