0

我正在使用.Net Framework 3.5.

我需要类似 a 的东西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;
            }
        }

然后,我需要将 a 之类的东西Dictionary与我的其他代码一起使用。对于每个Key,我需要返回一个Tupla,填充值。

所以,我创建了我的class

public class ParametrosMultiples : Dictionary<String, Tupla>
    {

    }

但它不认识我的Tupla class. 据我所见,我可以使用自定义clases(不仅是types,喜欢StringInt32等)

我得到的错误是

找不到类型或命名空间名称“Tupla”(您是否缺少 using 指令或程序集引用?)

但是它们在同一个命名空间中,甚至在同一个命名空间中.cs(我只提到它是为了确保它们在同一个命名空间中namespace,因为我们只使用一个namespace.cs进行约定)

如果我不能使用它Tupla,我如何从 a 中检索两个值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指令一起使用的类。

您似乎还有两个具有相同名称的独立类(一个静态类和一个“普通”类) - Tupla。这肯定会导致命名冲突。考虑更改其中一个的名称,或将功能合并到单个类中。

于 2012-08-14T19:18:00.777 回答