params,ref,out 方法参数
示例
在下面的方法使用中 OpenWindow(params object[] args) 传递的参数args添加了params修饰
public void OpenWindow(params object[] args){ int id=args[0]; Hashtable tab=(Hashtable)args[1]; } public void Init(){ List<ItemInfo> itemList=XUIManager.instance.getInfo<ItemInfo>(); OpenWindow(itemList) }
params 数目可变的参数
使用params关键字可以指定采用数目可变的参数的方法参数,可以发送参数声明中所指定类型的逗号分隔参数列表或指定类型的参数数组,还可以不发送参数。
params示例
public static void UserParame(params int[] list){ for (int i = 0; i < list.Length; i++) { Console.Write(list[i] + " "); } Console.WriteLine(); } public static void UseParams2(params object[] list) { for (int i = 0; i < list.Length; i++) { Console.Write(list[i] + " "); } Console.WriteLine(); } static void Main() { // You can send a comma-separated list of arguments of the // specified type. UseParams(1,2,3,4); UseParams2(1,'a',"test"); // A params parameter accepts zero or more arguments. // The following calling statement displays only a blank line. UseParams2(); // An array argument can be passed,as long as the array // type matches the parameter type of the method being called. int[] myIntArray = { 5,6,7,8,9 }; UseParams(myIntArray); object[] myObjArray = { 2,'b',"test","again" }; UseParams2(myObjArray); // The following call causes a compiler error because the object // array cannot be converted into an integer array. //UseParams(myObjArray); // The following call does not cause an error,but the entire // integer array becomes the first element of the params array. UseParams2(myIntArray); } } /* Output: 1 2 3 4 1 a test 5 6 7 8 9 2 b test again system.int32[] */
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。