【问题标题】:Dictionary with own tuple带有自己元组的字典
【发布时间】:2023-03-30 14:14:01
【问题描述】:

我正在使用.Net Framework 3.5

我需要像 Tuple 这样的东西,但是我没有它,我使用 this 创建了自己的元组

所以,我有

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。 据我所知,我可以使用自定义clases(不仅是types,如StringInt32等)

我得到的错误是

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

但是它们在同一个命名空间中,即使在同一个.cs 中(我只提到它是为了确保它在同一个namespace 中,因为我们只使用一个namespace 来表示.cs 的约定)

如果我不能使用 Tupla,我如何从 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(只留下一个Tupla Class),仍然报同样的错误,所以不是名字冲突的问题

【问题讨论】:

    标签: c# .net-3.5 dictionary namespaces


    【解决方案1】:

    您需要指定Tupla 类的通用参数。

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

    尽管您收到的错误似乎表明该类位于未引用的单独程序集中,或者(如果已引用或在同一程序集中),您尚未导入它所在的命名空间进入需要使用using directive 的类。

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

    【讨论】:

    • 尝试Dictionary&lt;String, Tupla&lt;Int32, Int32&gt;&gt; 但不起作用:/ 得到同样的错误。甚至不认识智能感知图普拉
    • @ElVieejo - 你导入了命名空间吗?
    • 它们在同一个命名空间中
    • @ElVieejo - 您是如何设法拥有 两个 名为 Tupla 的公共课程的?并且在同一个命名空间中?
    • 我解决了。我很惭愧地说解决方案。它有点“}”,VS认为它是一个方法而不是一个类(即使我放了类,VS也会忽略它并编译)。因此,删除缺少的“}”,并且效果很好。谢谢你,你帮我指导一下,所以我会接受你的回答
    猜你喜欢
    • 2018-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-02
    • 1970-01-01
    • 2017-06-16
    • 2017-09-11
    • 1970-01-01
    相关资源
    最近更新 更多