赞
踩
使用可变参数params关键字实现一个方法,可以参数是1,2或1,2,3或1,2,“a”。输出是参数转换为string拼接起来输出。
//Unity-可变参数params(数组参数) //使用可变参数params关键字实现一个方法,可以参数是1,2或1,2,3或1,2,"a"。输出是参数转换为string拼接起来输出。 using System; using System.Collections; using System.Collections.Generic; using System.Text; using UnityEngine; public class Demo : MonoBehaviour { int[] testData = { 0 }; int[] testData2 = { 1, 2 }; void Start() { //按数组变量形式来写的话,加params关键字效果是一样的,没有太大区别。 TestMethod(testData); TestMethod(testData2); TestMethod2(testData); TestMethod2(testData2); //把数组变为类似ArrayList这种形式的动态数组,用起来直接写数组的元素作为参数即可。使用起来比较方便。 TestMethod(3, 4); //不加params关键字时,只能用这种形式先定义和分配数组的元素。 TestMethod2(new int[] { 3, 4 }); TestMethod3(5, "a", 7.5f); TestMethod3(8, 9); OutPutString(1, 2); OutPutString(1, 2, 3); OutPutString(1, 2, "a"); } //增加params关键字可以让数组变为了类似ArrayList这样的动态数组。在使用时,可以直接用TestMethod(1,2);TestMethod(1,2,3);这种形式。 public void TestMethod(params int[] intData) { for (int i = 0; i < intData.Length; i++) { //Debug.Log("1 intData[i] = " + intData[i]); } } public void TestMethod2(int[] intData) { for (int i = 0; i < intData.Length; i++) { //Debug.Log("2 intData[i] = " + intData[i]); } } public void TestMethod3(params object[] intData) { for (int i = 0; i < intData.Length; i++) { //Debug.Log("3 intData[i] = " + intData[i]); } } public string OutPutString(params object[] data) { try { StringBuilder stringBuilder = new StringBuilder(); foreach (var item in data) { string str = Convert.ToString(item); stringBuilder.Append(str); } Debug.Log($"OutPutString = {stringBuilder.ToString()}"); return stringBuilder.ToString(); } catch (Exception ex) { Debug.Log($"ex = {ex}"); return ""; } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。