0

を使用して.Net Framework 3.5います。

のようなものが必要ですがTuple、それがないので、これを使用して独自のタプルを作成しまし

ので、私は持っています

public class Tupla<T1, T2>
        {
            public T1 First { get; private set; }
            public T2 Second { get; private set; }
            internal Tupla(T1 first, T2 second)
            {
                First = first;
                Second = second;
            }
        }

        public static class Tupla
        {
            public static Tupla<T1, T2> New<T1, T2>(T1 first, T2 second)
            {
                var tuple = new Tupla<T1, T2>(first, second);
                return tuple;
            }
        }

次に、Dictionary他のコード鉱山でのようなものを使用する必要があります。ごとに、値で満たされKeyた を返す必要があります。Tupla

だから、私は自分のclass

public class ParametrosMultiples : Dictionary<String, Tupla>
    {

    }

しかし、それは私のを認識しませんTupla class。私が見る限り、カスタムを使用できます( 、 like 、 、などclasesだけではありません)typesStringInt32

私が得るエラーは

型または名前空間名 'Tupla' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)

しかし、それらは同じ名前空間に.csありますnamespacenamespace.cs

それを使用できない場合Tupla、どのように から 2 つの値を取得できますKeyか?

編集:

クラスを取得した方法を示すには:

namespace ReportesWeb.WebApp.App_Shared
{
 public class ParametrosMultiples : Dictionary<String, Tupla<Int32, Int32>>
 {
 }

// here goes the Tupla code showed above, the two classes

}

編集2:

Static Tupla( One のみを残して)を削除しましたがTupla Class、それでも同じエラーが発生するため、名前との競合の問題ではありません

4

1 に答える 1

2

クラスのジェネリック パラメータを指定する必要がありますTupla

public class ParametrosMultiples : Dictionary<String, Tupla<type1,type2>>
{

}

あなたが得ているエラーは、このクラスが参照されていない別のアセンブリにあるか、(参照されているか同じアセンブリにある場合)、それが存在する名前空間をusingディレクティブで使用する必要があるクラス。

また、同じ名前の 2 つの別個のクラス (静的クラスと「通常の」クラス) があるようです - Tupla。これは確かに名前の競合を引き起こします。それらのいずれかの名前を変更するか、機能を単一のクラスに組み込むことを検討してください。

于 2012-08-14T19:18:00.777 に答える