title author date CreateTime categories
C# 传入 params object 长度
lindexi
2018-09-30 18:33:20 +0800
2018-8-20 19:26:7 +0800
C#

刚刚 LiesAuer 大神问了一个问题,如果在 params object 传入 object 数组,那么拿到的值是的长度是多少
我做了测试在传入不同的值可能拿到不同的长度

先来说总结

  • 传入一个数组进入 params object[] 会解析数组,传入的数组有多少元素就解析出多少元素

  • 传入一个数组和另一个元素,就会将数组解析为一个元素

  • 传入一个数组强转为 object ,就会解析为传入一个元素

先来创建一个控制台项目,在项目添加一个空白的方法,这个方法输出参数长度

        private static void TracinozeSallraymear(params object[] jearsawelSekerdis)
{
Console.WriteLine(jearsawelSekerdis.Length);
}

尝试传入不同的值来测试长度

            var foo = new object[3] {"lindexi", "123", "csdn"};

            TracinozeSallraymear(foo); 

这里可以说传入的是 一个 数组,也就是参数是 1 ,也可以说是传入 3 个元素,我尝试运行了一下,输出的是 3 也就是拿到 3 个元素。

我又尝试使用 string 数组,请看下面

            TracinozeSallraymear(new string[]
{
"lindexi", "123", "csdn"
});

上面的代码也是拿到 3 个元素。

但是如何将数组转为 object 就会输出 1 个元素

            TracinozeSallraymear((object) foo);
//输出 1 个元素

如果我在一个数组和一个元素放在一起,那么就会自动将数组转换为元素,请看下面代码

            TracinozeSallraymear(new string[]
{
"lindexi", "123", "csdn"
}, "lindexi.gitee.io");
//输出 2 个元素
// 一个是字符串数组,一个是字符串

如果我不使用数组,我使用 List 呢?

            TracinozeSallraymear(new List<string>
{
"lindexi",
"123",
"csdn"
});
//输出 1 个元素

所以需要将一个数组传入params object[]作为一个元素,简单的方法是将数组强转 object 或者再添加一个参数

参见:
c# - How to pass a single object[] to a params object[] - Stack Overflow

2018-9-30-C#-传入-params-object-长度的更多相关文章

  1. C# 传入 params object 长度

    刚刚 LiesAuer 大神问了一个问题,如果在 params object 传入 object 数组,那么拿到的值是的长度是多少 我做了测试在传入不同的值可能拿到不同的长度 先来说总结 传入一个数组 ...

  2. 2018.12.30【NOIP提高组】模拟赛C组总结

    2018.12.30[NOIP提高组]模拟赛C组总结 今天成功回归开始做比赛 感觉十分良(zhōng)好(chà). 统计数字(count.pas/c/cpp) 字符串的展开(expand.pas/c ...

  3. 2018.8.30 nowcoder oi赛制测试1

    2018.8.30 nowcoder oi赛制测试1 普及组难度,发现了一些问题 A 题目大意:求斐波那契数列\(f(k-1)f(k+1)-f(k)^2\),范围极大 打表可得规律 其实是卡西尼恒等式 ...

  4. C# params object[] args 可以传多个参数,可以不限制类型(转)

    C# params object[] args 可以传多个参数,可以不限制类型 using System;using System.Collections.Generic;using System.T ...

  5. C#使用 params object[] 将参数个数不一样的方法 集成一个

    getChange("1"); getChange("1","2"); public string getChange(params obj ...

  6. vue props 传入对象Object,如果外层更改属性,默认里面是不更新,需要使用 this.$set(this.datese1, 'xsfaDateYear1', '')

    vue props 传入对象Object,如果外层更改属性,默认里面是不更新,需要使用 this.$set(this.datese1, 'xsfaDateYear1', '')

  7. 2018.10.30 NOIp模拟赛T2 数字对

    [题目描述] 小 H 是个善于思考的学生,现在她又在思考一个有关序列的问题.        她的面前浮现出一个长度为 n 的序列{ai},她想找出一段区间[L, R](1 <= L <= ...

  8. 2014.8.30.ref,out,params,enum,递归

    (一)ref 函数形参变量的输入有两种方式:传值,传址.而ref则为传址.eg: static int Add(ref int n) { Console.WriteLine("Add---- ...

  9. 2018.10.30 bzoj4942: [Noi2017]整数(线段树压位)

    传送门 直接把修改的数拆成logloglog个二进制位一个一个修改是会TLETLETLE的. 因此我们把303030个二进制位压成一位储存在线段树里面. 然后维护区间中最靠左二进制位不为0/1的下标. ...

  10. EZ 2018 03 30 NOIP2018 模拟赛(六)

    链接:http://211.140.156.254:2333/contest/67 转眼间上次加回来的Rating又掉完了. 这次不知为何特别水,T1想了一段时间没想出来弃了,导致后面心态炸了. T2 ...

随机推荐

  1. CDH5.13.1安装

    文件下载 Cloudera Manager 地址:http://archive.cloudera.com/cm5/cm/5/ 这里下载的是5.13.1的版本,https://archive.cloud ...

  2. QT语言翻译

    QT中多语言的实现方式: 1.代码中tr运用 2.使用工具生成ts文件 3.翻译ts文件 4.生成qm文件 5.程序加载 以下内容程序加载时放入即可. QString appPath = QCoreA ...

  3. Mac终端打开AndroidStudio已创建模拟器

    目的 偶尔我们只是想运行模拟器,并不想打开AndroidStudio,这时我们可以从终端找到emulator,通过emulator来启动指定名称的模拟器 步骤 1.找到emulator所在位置 fin ...

  4. Python3 写的远程批量修改文件内容的脚本

    一.说明: 1.利用Python的paramiko模块,调用远程的shell命令去修改相应文件. 2.有一个专用配置文件,列出服务器清单. 3.Python循环读取配置文件的服务器IP去连接它,并执行 ...

  5. margin负边距的使用(超简单)

    写在开头: 在css的世界中,一切都是框,所有的框都处于流动的状态 margin负边距可以使文档流发生偏移   在没有设置margin-bottom的时候,parent的高度会跟随child的内部元素 ...

  6. JavaScript void

    我们经常会使用到 javascript:void(0) 这样的代码,那么在 JavaScript 中 javascript:void(0) 代表的是什么意思呢? javascript:void(0) ...

  7. mysql列转行 行转列

    列转行 SELECT flag ,substring_index(substring_index(t.context,), ) as result FROM ( select 'aa' as flag ...

  8. HLSL像素着色器

    原文:HLSL像素着色器 昨日不可追, 今日尤可为.勤奋,炽诚,不忘初心 手机淘宝二维码 扫描       或者打开连接:程序设计开发 ,掌声鼓励,欢迎光临.     像素着色器替代了固定渲染管线的  ...

  9. 字符串分割+二维数组 Day15练习

    package com.sxt.arrays.test; import java.util.Arrays; /* 1,2,3,4!5,6,7!8,9!12,456,90!32 * 将此字符串以叹号为分 ...

  10. Redis源码解析:06整数集合

    整数集合(intset)是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis就会使用整数集合作为集合键的底层实现. intset可以保存类型为int16_t,i ...