[Unity][C#]可变参数object形参传递参数强制转换问题

本文探讨了Unity中使用C#的params object[]传递参数时遇到的问题,特别是关于如何处理string和其他类型参数的强制转换。文章详细解释了System.object类型的通用性及其在可变参数中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

System.object能放什么类型,好像什么类型都可以。

通过可变参数params object[] paramsList传递一个string或者多个

...
test2("dd");
test2("aa","bb","cc");
...

paramsList = (object[])o;//强制类型 不一定生效.会被转成 string而不是string[]

paramsList = o as object[];//这样才生效,必定会转换为string[]

...
using System;
...
public void test2( params object[] paramsList)
{
    Test(paramsList);
}
...
public void Test(object o)//object[]
    {
        Debug.Log(str + " Test0");
        if (o != null)
        {
            Debug.Log(str + " Test1 o != null");
            object[] paramsList = null;
            paramsList = //(object[])
                o as object[];//强制类型 不一定生效
            if (paramsList == null 
                //|| p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值