每日一学25——Unity C# Tuple元祖

2020-07-20  本文已影响0人  ShawnWeasley

学习来源:https://blog.csdn.net/mss359681091/article/details/80089620?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase

元祖第一种用法可以作为一些简单的(无函数)数据类的替代品。
我们经常会创建一些只有参数没有函数的类,用来做数据类,比如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唯一的作用-。-

上一篇 下一篇

猜你喜欢

热点阅读