-2

文字列のリストのリストがあり、それを別のメソッドに渡したい。

私はリストについて少し混乱していて、それらを処理する方法がわかりません。

public Form(string[] header, List<> data)

Listはデータ型(またはオブジェクト)ですか?エラーVS2010は、タイプを予期していることを示しているためです。

4

3 に答える 3

7

List<>-はジェネリックデータ型です。リストの項目のタイプを角かっこで囲む必要があります。この場合、これは文字列のリストです- List<string>

public Form(string[] header, List<List<string>> data)
于 2012-08-23T13:43:16.753 に答える
5

List<T>建物タイプのテンプレートとして見る必要があります。ジェネリック型として知られていますが、実際には型ではありません。

プログラムを実行すると、そのようなタイプのオブジェクトを作成できません。これは混乱を招くところです。これらは、型パラメーターを使用して新しい型を作成するために使用されます。型パラメーターは、ジェネリック型に渡す型です。例えば:

  1. List<T>-ジェネリック型
  2. T部分-タイプパラメータ。Tは任意のタイプにすることができます。string
  3. ジェネリック型(1)を使用し、型パラメーター(2)としていくつかの型を使用する場合は、新しい型を作成します。List<string>

新しいタイプを作成しましList<string>た。タイプパラメータごとに、C#コンパイラは新しいタイプを作成します。したがってList<string>、とは完全に異なりList<int>ます。

もちろん、内部のそれよりも複雑です。タイプは、実際には実行時に.NETFrameworkによって作成されます。これにより、アプリケーションの実行中に作成するタイプを決定できます。ただし、C#コンパイラにはコンパイル時の型チェックがあるため、この概念も認識しており、ジェネリック型に対して単に無効な操作を実行することはできません。

警告:テンプレートはC ++の既存の概念であり、C#ジェネリックと混同しないでください。

于 2012-08-23T13:50:44.083 に答える
0

これを使って:List<List<string>> data

于 2012-08-23T13:44:17.613 に答える