gpt4 book ai didi

c# - 只有赋值、调用、递增、递减、等待和新对象表达式可以用作语句

转载 作者:行者123 更新时间:2023-12-03 16:17:35 24 4
gpt4 key购买 nike

我有这个 foreach 部分,我试图在“result = string.Format”之后添加一行,但出现以下错误“只有赋值、调用、递增、递减、等待和新对象表达式可以用作语句“谁能告诉我我做错了什么。

foreach (DataRow record in table.Rows)
{
string key = record["Code"] + "_" + record["Description"];
int row = (int)rownum[key];

string date = formatDate(record["ApptDate"].ToString(), "_");

string result = string.Empty;
if (record["Dosage"].ToString() != string.Empty)
result = string.Format("{0}/{1}", test.SharedLib.Application.RemoveTrailingZeroes(record["Dosage"].ToString()),
test.SharedLib.Application.RemoveTrailingZeroes(record["Units"].ToString()));
if (record["Dosage"].ToString() != string.Empty)
result.StartsWith("/") && result.EndsWith("/") ? result.Replace("/", string.Empty) : result;
else if (record["Units"].ToString() != string.Empty)
result = record["Units"].ToString();

dataTable.Rows[row]["ApptDate" + date] = result;
}

最佳答案

if (record["Dosage"].ToString() != string.Empty)
result.StartsWith("/") && result.EndsWith("/") ? result.Replace("/", string.Empty) : result;

第二行没有语句,它是一个表达式。并非所有表达式都可以是 C# 中的语句,因此这是一个语法错误。

据推测,您打算将此结果分配给 result :
if (record["Dosage"].ToString() != string.Empty)
result = (result.StartsWith("/") && result.EndsWith("/")) ? result.Replace("/", string.Empty) : result;

此外,您应该考虑封闭 if 的正文。/ else带大括号的块 ( {} )。如果没有大括号,这些块的嵌套方式不直观,并且会妨碍 future 的维护。 (例如,你能说出 if 块属于哪个 else if 块吗?下一个继承这个项目的人不仅能说出区别,还能理解嵌套的意图吗?说清楚!)

关于c# - 只有赋值、调用、递增、递减、等待和新对象表达式可以用作语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17820277/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com