首页 / 知识
关于c#:如何将单个对象[]传递给params对象[]
2023-04-13 17:43:00
![关于c#:如何将单个对象[]传递给params对象[]](/css/img/no/101.webp)
How to pass a single object[] to a params object[]我有一个采用params object []的方法,例如:
当我将两个对象数组传递给此方法时,它可以正常工作:
但是,当我传递一个object []时,它并没有将我的object []作为第一个参数,而是像我想要一个一个地传递它们一样,将其所有元素都作为一个参数:
如何将单个object []作为第一个参数传递给params数组? 一个简单的类型转换将确保编译器知道您在这种情况下的含义。
由于数组是对象的子类型,因此可以解决所有问题。不过,我会同意一些奇怪的解决方案。
1)用参数类型的数组调用,在这种情况下,
2)或者,使用扩展的参数列表进行调用,在这种情况下,编译器将自动将参数列表包装在临时数组中,并将其传递给方法:
为了将对象数组传递给带有" 1)手动创建包装器数组,并将其直接传递给方法,如lassevk所述:
2)或者,如Adam所述,将参数强制转换为
但是,如果该方法的目标是处理多个对象数组,则使用显式"
编辑:Raymond Chen在新帖子中描述了此行为及其与C#规范的关系。 这是涉及LINQ的单线解决方案。
您需要将其封装到另一个object []数组中,如下所示:
解决此问题的另一种方法(虽然不是很好的做法,但看起来很美):
用法:
一种选择是可以将其包装到另一个数组中:
有点丑陋,但是由于每个项目都是一个数组,因此您不能仅将其强制转换以使问题消失……例如,如果它是Foo(参数对象项目),则可以执行以下操作:
另外,您可以尝试定义另一个仅包含单个数组的Foo重载实例:
|
最新内容
相关内容
linux系统传递命令?
linux系统传递命令?,系统,工作,地址,信息,命令,发行,基础,目录,功能,操作,linux系统常用操作命令linux常用命令有pwd命令、cd命令、ls命令、calinux命令输入方法?
linux命令输入方法?,系统,电脑,密码,管理,地址,命令,网站,工具,首开,位置,linux终端输入~怎么弄中间在电脑上打开需要的Word文件进入。进入到文如何将python添加到环境变量?
如何将python添加到环境变量?,系统,信息,工作,环境变量,命令,窗口,步骤,变量,路径,以下,Python是一种被广泛使用的编程语言,许多人都喜欢使用PyPython中什么是反射?使用方法有哪
Python中什么是反射?使用方法有哪些?,信息,培训,状态,术语,检测,反射,属性,对象,字符串,方法,反射这个术语在很多语言中都存在,并且存在大量的Python中有哪些方法可以解压文件?
Python中有哪些方法可以解压文件?,工具,系统,工作,培训,文件,文件夹,方法,窗体,不同于,以下内容,在Python学习和日常使用中,很容易造成文件过大Python列表类型list合并有哪些方法
Python列表类型list合并有哪些方法?,培训,方法,列表,可能会,数组,切片,下文,字符串,数据类型,请看,在Python编程语言中,有各种数据类型,比如字符零基础学习Python的四种方法
零基础学习Python的四种方法,基础,代码,基础知识,培训,发展,时间,知识,书籍,初学者,练习,近年来,随着移动互联网的发展,对Python人才的需求越来pythonPandas Series对象有哪些属
pythonPandas Series对象有哪些属性?,工具,数据,数字,分析,培训,属性,数据类型,数组,对象,索引,想必大家都知道pandas,它是基于Numpy的一种工具python是面向对象还是面向过程的
python是面向对象还是面向过程的,数据,代码,基础,形态,培训,术语,设计,对象,过程,语言,Python虽然是解释型语言,但从设计之初就已经是一门面向如何在Python中定义类方法和修改类
如何在Python中定义类方法和修改类属性?,代码,方法,培训,对象,实例,定义,结果,示例,赋值,属性,Python中的类还可定义使用@classmethod修饰的类提高Python 效率的 5 种高级方法
提高Python 效率的 5 种高级方法,代码,数字,函数,有限,设备,项目,工具,培训,列表,内存,任何编程语言的高级特征通常都是通过大量的使用经验才关于Python的高效学习方法
关于Python的高效学习方法,基础,培训,资料,质量,技术,系统,情况,学习方法,高效,初学者,今天给大家分享一下Python高效的学习方法,尽管每个人的