元祖第一种用法可以作为一些简单的(无函数)数据类的替代品。
我们经常会创建一些只有参数没有函数的类,用来做数据类,比如Person:
public class Person
{
public string Name;
public int Age;
public bool Sex;
}
如果使用元祖呢就可以直接在使用类中定义一个Tuple变量:
using System;
using UnityEngine;
public class Test : MonoBehaviour
{
Tuple<string, int, bool> person = new Tuple<string, int, bool>("小明", 12, false);
private void Start()
{
Debug.Log(person.Item3);
}
}
当然了,以上这种用法其实并不推荐,因为真正用起来的时候会出现person.Item3等这种没有意义的变量。
除了以上情况外,还会有一种情况,比如类的嵌套组合使用时,比如:
public class Person
{
public string Name;
public int Age;
public bool Sex;
}
public class Student
{
public Person Person;
public int StudentID;
}
这时候使用Tuple代替Student类倒是有那么点意思:
using System;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
List<Tuple<Person, int>>
Students = new List<Tuple<Person, int>>();
}
public class Person
{
public string Name;
public int Age;
public bool Sex;
}
但是,以上两种情况,个人都是不推荐使用Tuple,主要还是因为参数无意义。
学习文章的末尾提到了:
如果你需要多个 key 值的字典,使用元组作为你的 key 值,一切会非常顺利。如果你需要在每个位置都具有多个值的列表,使用元组进行列表搜索,会工作的很好
可能是Tuple唯一的作用-。-
网友评论