2017-04-21 15 views
0

OS X(ターゲットフレームワークはnetstandard1.6)で.NET Core 1.1でC#を使用していますが、欠落しているメソッドで奇妙なエラーが発生しています。エラーが発生し配列に 'AsReadOnly'の定義が含まれていません

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

上に示したプログラムの

using System; 
using System.Collections.ObjectModel; 

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

コンパイルは、.NETのコアで利用可能AsReadOnlyされていないか、私は他の何かが足りないのですか?

+0

https://docs.microsoft.com/en-us/dotnet/api/system.array.asreadonly--1?view=netstandard-1.6#System_Array_AsReadOnly__1___0___に基づいて、サポートされていないようです。 – vyrp

+3

しかし、あなたはいつも 'new ReadOnlyCollection(array)'を実行することができます – vyrp

+0

実装は単に 'return new 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)を使用することができます。

関連する問題