我有这个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;
}
Run Code Online (Sandbox Code Playgroud)
if (record["Dosage"].ToString() != string.Empty)
result.StartsWith("/") && result.EndsWith("/") ? result.Replace("/", string.Empty) : result;
Run Code Online (Sandbox Code Playgroud)
第二行没有声明,它是一个表达式.并非所有表达式都可以是C#中的语句,因此这是语法错误.
大概你打算将结果分配给result
:
if (record["Dosage"].ToString() != string.Empty)
result = (result.StartsWith("/") && result.EndsWith("/")) ? result.Replace("/", string.Empty) : result;
Run Code Online (Sandbox Code Playgroud)
此外,您应该考虑使用大括号()括起if
/ else
blocks 的主体{}
.没有支撑,这些块嵌套的方式不直观,并且会妨碍将来的维护.(例如,你能告诉该if
块else if
将属于哪个块吗?继承这个项目的下一个人是否能够不仅能说出差异,还能了解嵌套的意图吗?明确它!)