このエラーメッセージの問題はstackoverflowで見ましたが、どちらも日付型I日付型のクラスを作成し、日付クラスにそのためのいくつかのオーバーロードを書いています。マイDateクラスは'Common.Date'型のオブジェクトを型 'System.IConvertible'にキャストできませんC#
using System;
namespace Common
{
public class Date
{
private DateTime _d1;
public Date(DateTime dateTime)
{
_d1 = dateTime;
}
public static bool operator <(Date date1, Date date2)
{
bool flag = false;
//Now, get the original DateTime Type of C#
DateTime firstDate = Convert.ToDateTime(date1);
DateTime secondDate = Convert.ToDateTime(date2);
//Now compare the two DateTime variables and assign the flag to true
//if the first date is smaller than the second date
int result = DateTime.Compare(firstDate, secondDate);
if (result < 0)
{
flag = true;
}
return flag;
}
public static bool operator >(Date date1, Date date2)
{
bool flag = false;
//Now, get the original DateTime Type of C#
DateTime firstDate = Convert.ToDateTime(date1);
DateTime secondDate = Convert.ToDateTime(date2);
//Now compare the two DateTime variables and assign the flag to true
//if the first date is Greater than the second date
int result = DateTime.Compare(firstDate, secondDate);
if (result > 0)
{
flag = true;
}
return flag;
}
public static bool operator <=(Date date1, Date date2)
{
bool flag = false;
//Now, get the original DateTime Type of C#
DateTime firstDate = Convert.ToDateTime(date1);
DateTime secondDate = Convert.ToDateTime(date2);
//Now compare the two DateTime variables and assign the flag to true
//if the first date is Greater than the second date
int result = DateTime.Compare(firstDate, secondDate);
if (result <= 0)
{
flag = true;
}
return flag;
}
public static bool operator >=(Date date1, Date date2)
{
bool flag = false;
//Now, get the original DateTime Type of C#
DateTime firstDate = Convert.ToDateTime(date1);
DateTime secondDate = Convert.ToDateTime(date2);
//Now compare the two DateTime variables and assign the flag to true
//if the first date is Greater than the second date
int result = DateTime.Compare(firstDate, secondDate);
if (result >= 0)
{
flag = true;
}
return flag;
}
public static bool operator ==(Date date1, Date date2)
{
bool flag = false;
//Now, get the original DateTime Type of C#
DateTime firstDate = Convert.ToDateTime(date1);
DateTime secondDate = Convert.ToDateTime(date2);
//Now compare the two DateTime variables and assign the flag to true
//if the first date is Greater than the second date
int result = DateTime.Compare(firstDate, secondDate);
if (result == 0)
{
flag = true;
}
return flag;
}
public static bool operator !=(Date date1, Date date2)
{
bool flag = false;
//Now, get the original DateTime Type of C#
DateTime firstDate = Convert.ToDateTime(date1);
DateTime secondDate = Convert.ToDateTime(date2);
//Now compare the two DateTime variables and assign the flag to true
//if the first date is Greater than the second date
int result = DateTime.Compare(firstDate, secondDate);
if (result != 0)
{
flag = true;
}
return flag;
}
}//end of class Date
}//End of namespace
ですが、私は、ページの後ろに私のコードのは、私は、このエラーを与えることに使用しようとしています中に問題がある - 「System.IConvertibleを入力するタイプ「Common.Date」のオブジェクトをキャストすることができません
私が使用しているコード Date purchaseDate = new Date(item.PurchaseDate); 日付submissionSate =新しい日付(item.SubmissionDate);ここの項目で
if (purchaseDate>submissionSate)
{
//to do
}
purchasedateとsubmision日付オブジェクトdatetime型のプロパティであり、誤りがあればライン である誰も私にどんなsuggesionを提供することはできますか?この問題の解決策は何でしょうか?
正しく理解できませんでしたか、もう少し説明してください。それはあなたのすてきなことです。 – Pankouri
['Convert.ToDateTime'](http://msdn.microsoft.com/en-us/library/dw6yd06a.aspx)のオーバーロードを見れば、唯一のものであることがわかります'Convert.ToDateTime(object)'であり、 'Convert.ToDateTime'が動作するためには、' object'は 'IConvertible'インタフェースを実装しなければなりません(ドキュメンテーション参照)。あなたの 'Date'クラスは' IConvertible'を実装していないので、 'Convert.ToDateTime(date1)'は例外をスローします。 –
ありがとう問題が解決しました。 – Pankouri