在上一篇我们使用 object 解决了方法结构重复的问题,而在文章的尾部又提了一下更好的方法,就是泛型。 泛型对很多初学者来说是比较高级的概念,这里呢我们顺便复习一下泛型。 泛型是什么呢?对于方法来说,方法结构中的部分或全部类型都可以先不进行定义,而是到调用方法的时候再去定义。 我们的 GetRandomValue 的目前代码如下 : 测试代码如下: 将 object 改成泛型后如下: 测试代码如下: 从测试代码中可以比较出来,使用泛型之后的代码确实好用了很多。 大家思考下泛型是不是这样的?结构中的部分或全部类型都可以先不进行定义,而是到调用的时候再去定义。 我们有收获了一个法宝泛型。要说方法是逻辑上的复用,那么泛型就是结构上的复用。两大复用法宝。 关于泛型就先介绍到这里,我们以后还会遇到使用泛型的时候的。 在看下当前的测试代码: 目前比较麻烦的是数组构造代码了。 这个也是有办法搞定的。我们把方法的实现改成如下: 大家注意下,参数前边加上了一个 params 关键字。这个是什么意思呢? 我们先看下测试代码,测试代码呢其实可以改成如下: 是不是清爽了很多?这就是 params 的用法。 而通过 params 修饰的 values 参数来说,如果传入的是一个数组,那么 values 本身就是这个数组,如果传入的是若干个值,那么 values 中就包含了这若干个值。 总结一句话,就是可以传一整个数组,也可以传若干个参数,设计得非常人性化。 到此呢,我们的第九个示例就已经非常完善了。 全部代码如下: 代码执行结果如下: 编译之后菜单如下 目录结构如下 我们进行一次导出,这次导出就正常导出就好。 今天的内容就到这里,我们下一篇再见,拜拜~。 转载请注明地址:凉鞋的笔记:liangxiegame.com QFramework 地址:https://github.com/liangxiegame/QFramework QQ 交流群:623597263 Unity 进阶小班: 关注公众号:liangxiegame 获取第一时间更新通知及更多的免费内容。public static object GetRandomValueFrom(object[] values) { return values[Random.Range(0, values.Length)]; }
var intRandomValue = (int)GetRandomValueFrom(new int[]{1,2,3}); var stringRandomValue = (string)GetRandomValueFrom(new string[]{"asdasd","123123"}); var floatRandomValue = (float)GetRandomValueFrom(new float[]{ 0.1f,0.2f });
public static T GetRandomValueFrom<T>(T[] values) { return values[Random.Range(0, values.Length)]; }
var intRandomValue = GetRandomValueFrom(new int[]{1,2,3}); var stringRandomValue = GetRandomValueFrom(new string[]{"asdasd","123123"}); var floatRandomValue = GetRandomValueFrom(new float[]{ 0.1f,0.2f });
var intRandomValue = GetRandomValueFrom(new int[]{1,2,3}); var stringRandomValue = GetRandomValueFrom(new string[]{"asdasd","123123"}); var floatRandomValue = GetRandomValueFrom(new float[]{ 0.1f,0.2f });
public static T GetRandomValueFrom<T>(params T[] values) { return values[Random.Range(0, values.Length)]; }
意思是 GetRandomValueFrom 可以传任意数量的参数。var intRandomValue = GetRandomValueFrom(1, 2, 3); var stringRandomValue = GetRandomValueFrom("asdasd", "123123"); var floatRandomValue = GetRandomValueFrom(0.1f, 0.2f);
using UnityEngine; namespace QFramework { public partial class MathUtil { #if UNITY_EDITOR [UnityEditor.MenuItem("QFramework/9.从若干个值中随机取出一个值", false, 10)] #endif private static void GetRandomValueFromMenuClicked() { Debug.Log(GetRandomValueFrom(1, 2, 3)); Debug.Log(GetRandomValueFrom("asdasd", "123123")); Debug.Log(GetRandomValueFrom(0.1f, 0.2f)); } public static T GetRandomValueFrom<T>(params T[] values) { return values[Random.Range(0, values.Length)]; } } }
更多内容
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算