0

我在以下代码中收到此错误。此 + 号在 C# 中不可用吗?

错误:运算符“+”不能应用于“System.date.time”和“char”类型的操作数

 return StartDate +';'+EndDate;

编辑 :

在答案之后,我编辑了这样的代码。但后来我得到了那些错误

return StartDate.ToString() + ';' + EndDate.ToString();

错误:由于 Hdate.HDate(); return void,return 关键字后面不能跟对象表达式

完整代码在这里:点击这里查看完整代码

4

6 回答 6

5

只需使用“;” 代替 ';':

return StartDate +";"+EndDate;

字符串有一个 + 运算符(Concat),它将对对象进行操作(使用 .ToString()) - 因此,如果您给出一个字符串,则该语句是有效的。在您的情况下,没有这样的字符运算符,编译器无法知道您隐含地将所有内容转换为字符串。

编辑:您的第二个问题(考虑在未来将其作为一个新问题):

直接来自您的代码(完整版):

public HDate(){

    DateTime today = DateTime.Now;
    /* snip - not relevant */   
       return StartDate+';'+EndDate;
   }

你看:这是你的HDate类型的构造函数——你在最后一个语句中返回了一些东西......但你必须不

于 2012-06-19T08:18:29.510 回答
2

问题是当文字值用单引号括起来时,它是char,而不是string。您可以使用双引号,然后它应该可以工作,或者使用String.Format()

    return String.Format("{0};{1}", StartDate, EndDate);
于 2012-06-19T08:19:59.543 回答
1

假设您尝试返回一个字符串,那么您需要

return StartDate.ToString() +';'+EndDate.ToString();
于 2012-06-19T08:19:09.380 回答
1
return String.Format(
                 CultureInfo.CurrentCulture, 
                 "{0};{1}", 
                 StartDate,  
                 EndDate);
于 2012-06-19T08:20:49.557 回答
1

您需要将其作为字符串返回,因此将 StartDate 和 EndDate 转换为字符串。对于使用 DateTime 的 .ToString 方法进行格式化,请参阅此处

于 2012-06-19T08:21:30.197 回答
0

你的代码有问题。这样做。

return StartDate.ToString() + ';' + EndDate.ToString();

只需使用 .ToString();

您是否返回了一些东西但在无效的情况下?

于 2012-06-19T08:32:25.610 回答