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()を使用)。したがって、文字列を指定すると、ステートメントは有効になります。あなたの場合、そのような文字の演算子はなく、コンパイラは、すべてを文字列に暗黙的に変換したいことを知ることができません。

編集:あなたの2番目の問題に(将来それを新しい質問にすることを検討してください):

コードから直接(フルバージョン):

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 に答える