C#函数可变参数的使用

摘要:
通常,函数中的参数是确定的。然而,在某些情况下,可以根据需要更改函数的参数数量。变量参数函数通过在参数之前添加参数来使用。

一般情况下,函数中参数是确定的。但是在某些情况下,函数的参数个数可以根据需要改变而改变,可变参数的函数使用方法是在参数前加params。

以下是我的一个demo:

C#函数可变参数的使用第1张C#函数可变参数的使用第2张查看代码
 1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 namespace demo
7 {
8 class Program
9 {
10 static void Vfunc(params string[] values)
11 {
12 foreach (string s in values)
13 {
14 Console.WriteLine(s);
15 }
16 }
17
18 static void Main(string[] args)
19 {
20 string[] names = {"zhm"};
21 string[] sexs = { "", "" };
22 Vfunc(names);
23 Vfunc(sexs);
24 Console.ReadKey();
25 }
26 }
27 }

//输出zhm

         男

         女

当然,一个函数也可包含可变参数和不变参数,两个可以同时使用

C#函数可变参数的使用第3张C#函数可变参数的使用第4张查看代码
 1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 namespace demo
7 {
8 class Program
9 {
10
11 static void SayHello(string name, params string[] nichens)
12 {
13 Console.WriteLine("我的名字{0}",name);
14 foreach(string nichen in nichens)
15 {
16 Console.WriteLine("我的昵称{0}",nichen);
17 }
18 }
19 static void Main(string[] args)
20 {
21 string[] names = {"zhm","dd","yy","ii","UU" };
22 SayHello("zhm", names);
23
24 Console.ReadKey();
25 }
26 }
27 }

但是值得注意的是可变参数必须放在函数中参数位置的最后一个,上述函数如果写成 static void SayHello(params string[] nichens,string name)

就会显示错误:“params参数必须是形象参表中最后一个"。

免责声明:文章转载自《C#函数可变参数的使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Confluence 6 教程:空间高手【Shell脚本学习1】Shell简介:什么是Shell,Shell命令的两种执行方式下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

结对项目:一寸时光APP(日程管理)二

建立数据库 package com.example.myapplication3.db; import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLi...

boost中的有用工具assign和uuid

assign assign重载‘+’=和‘,’实现连续赋值 assign不仅支持所有8个STL标准容器(vector、string、deque、list、set、multiset、map、multimap)。也对stl中的容器适配器提供了适当的支持,包括queue和priority_queue 演示样例代码: int testAssign() {...

微信退款通知信息解密

在最近的开发需求中,有一个需求,就是需要把微信退款通知记录在数据库中,原本以为是一个简单的需求,但是微信文档的坑,是你不能理解的。 在微信退款通知返回的字段中有一个加密信息字段req_info。这个加密字段需要三个解密步骤才能最终获取到信息。由此可见,这个字段是多么的重要。以下是微信官方文档给出的解密步骤: 解密步骤如下: (1)对加密串A做base64解...

DevExpress WPF让创建绑定到数据的3D图表控件变得更容易(Part 1)

下载DevExpress v20.1完整版 富文本控件难上手?这堂公开课你一定不能错过,不同视图不同应用场景全解! 通过DevExpress WPF Controls,您能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 在本教程中,您将完成可视化数据源所需的步骤。 应该执行以下步骤,本文我们将...

Swift-可选值(Optional)讲解

前提:Swift中有规定:对象中的任何属性在创建时,都必须要有明确的初始化值 1.定义可选类型 方式一:常规方式(不常用) var name : Optional<String> = nil 方式二:语法糖(常用) var name:String? = nil Optional理解:   Optional也是Objective-C没有的数据类型...

C# 序列化与反序列化Serialization之Json Xml Binary Soap JavaScript序列化

所谓的序列化其实就是把一个内存中的对象信息转化成一个可以持久化保存的形式,方便保存数据库和文件或着用于传输, 序列化的主要作用是不同平台之间进行通信与信息的传递保存等,常用的有序列化有Json Xml Binary Soap JavaScript序列化等,当然我们也可以使用第三方的序列化类库,第三方的序列化类库可以参照网上的,这里不再赘述, 本文主要介绍J...