c#中的元组定义

dao*_*olm 3 c# tuples definition

我正在尝试定义一个类型Tuple <int, Tuple <int, int>>.我所拥有的是一个名为Tilewhere 的类,我定义了一些这样的参数:

public class Tile
{
    public readonly int producerId;
    public readonly int level;
    public class Id : Tuple<int, Tuple<int, int>>
    {
    }
    public class TId : Tuple<int, Tuple<int, int>>
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是VS告诉我这个TIdId:

没有任何参数对应于''所需的形式参数'item1 Tuple< int, Tuple< int, int>>.Tuple(int, Tuple<int, int>)'.

我不完全明白这里发生了什么.我是否必须以不同的方式定义此类型?谢谢您的帮助!

ibi*_*iza 11

您的代码会立即变得混乱,看起来像一团糟.您最好在类中定义属性,IdTId不是继承自元组...

如果你真的想采用元组方式,你需要提供参数来初始化你的数据:

public class Tile
{
    public readonly int producerId;
    public readonly int level;
    public class Id : Tuple<int, Tuple<int, int>>
    {
        public Id(int value1, int subvalue1, int subvalue2)
            : base(value1, new Tuple<int, int>(subvalue1, subvalue2))
        {
        }
    }
    public class TId : Tuple<int, Tuple<int, int>>
    {
        public TId(int value1, int subvalue1, int subvalue2)
            : base(value1, new Tuple<int, int>(subvalue1, subvalue2))
        {
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 同意不扩展Tuple &lt;&gt;的可读性的建议 (2认同)