VB.Netでは、問題なく次のようなことができます...これはかなり役に立たないクラスであるという事実を無視してください:-)
Imports System
Public Class Class1
Public Shared Function ArrayToList(ByVal _array() As String) As Collections.Generic.List(Of String)
Return New Collections.Generic.List(Of String)(_array)
End Function
End Class
ただし、C#で同じことを行うと...
using System;
public class Class1
{
public static Collections.Generic.List ArrayToList(string[] _array)
{
return new Collections.Generic.List(_array);
}
}
「Collections.Generic.List」に「タイプまたは名前空間名「Collections」が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)」というエラーが表示されます。
Listを使用するには、System.Collections.Genericへのusingディレクティブが実際に必要であることは知っていますが、その理由はわかりません。また、関数宣言で同じエラーが発生しない理由もわかりませんが、returnステートメントでのみ発生します。
私は誰かがこれを説明したり、それを説明しているtechnetページを紹介してくれることを望んでいました。私は周りを検索しましたが、この概念を説明するものは何も見つかりません。
編集:ただ注意するために、問題は実際には、システム内のコレクションを参照できる例のように、サブ名前空間の参照に関するものです。