You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用do/while循环向字符串追加参数遇CS0023错误求助

编译错误CS0023的原因及修复方案

你的代码第12行的赋值语句存在语法错误:

itemList = + ", " + args[$"item.{i}"].ToString();

这里的= +是错误写法,编译器会把+ ", "解析为一元加号运算符,而C#中一元加号不能作用于string类型,因此触发了CS0023错误。

修复方法

将赋值语句改成正确的字符串拼接形式,有两种常用写法:

写法1:使用复合赋值运算符+=(推荐)

using System;

public class CPHInline
{
    public bool Execute()
    {
        string itemList = "The following items are on that shopping list:";
        int i = 0;
        int ic = Convert.ToInt32(args["list.itemsCount"]);
        do
        {
            itemList += ", " + args[$"item.{i}"].ToString();
            i++;
        }
        while (i <= ic);
        return true;
    }
}

写法2:显式拼接原字符串

itemList = itemList + ", " + args[$"item.{i}"].ToString();

额外提示(可选)

你提到的首个元素前多逗号空格的问题,后续可通过判断i是否为0处理:当i == 0时直接追加元素,否则再追加逗号+元素。另外注意循环条件i <= ic可能导致索引越界——如果list.itemsCount是参数总个数,索引范围应为0到ic-1,将循环条件改为i < ic更合理。

内容的提问来源于stack exchange,提问作者StefanBraun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 15:42:12