Постоянно возникают вопросы, поэтому прилепливаю тему:
http://msdn2.microsoft.com/en-us/library/zwkz3536(VS.71).aspx
gaidar писал(а):Постоянно возникают вопросы, поэтому прилепливаю тему:
http://msdn2.microsoft.com/en-us/library/zwkz3536(VS.71).aspx
Estilla писал(а):Content not found...
А курс акций конечно растет? Или эта "корпорация" без акций?У меня весь корпоративный софт на нем написан и продолжает писаться.
X = Obj as DateTime?;
X = TryCast(Obj, Date?)
X = TryCast(Obj, Nullable(Of Date))
Dim X As DateTime? = Nothing
Dim Obj As Object = Nothing
Obj = DirectCast(DateTime.Now, Object)
X = DirectCast(Obj, DateTime?)
System.Windows.Forms.MessageBox.Show(X.ToString)
FireFenix писал(а):Если включить телепатию и принять, что данные переменные имеют типы как представлено ниже
FireFenix писал(а):То ошибка в TryCast, TryCast применимо только к классам (точнее к типам, которые передаются по ссылке, т.е. для которых существует состояние Nothing [без Nullable])
Module All
Sub Main()
Dim X As Date?, Obj As Object
Obj = Nothing
X = DirectCast(Obj, Date?) ' Ok
Console.WriteLine(X)
X = CDate(Obj) ' Wrong result
Console.WriteLine(X)
Obj = Now()
X = DirectCast(Obj, Date?) ' Ok
Console.WriteLine(X)
X = CDate(Obj) ' Ok
Console.WriteLine(X)
X = CObj(TryCast(Obj, Nullable)) ' Wrong result
Console.WriteLine(X)
Obj = New Date?(Now())
X = CObj(TryCast(Obj, Nullable)) ' Wrong result
Console.WriteLine(X)
Obj = DBNull.Value
'X = DirectCast(Obj, Date?) ' Exception
'Console.WriteLine(X)
'X = CDate(Obj) ' Exception
'Console.WriteLine(X)
X = CObj(TryCast(Obj, Nullable)) ' Ok!!! But...
Console.WriteLine(X)
X = DirectCast(CObj(TryCast(Obj, Nullable)), Date?) ' Ok!!! But...
Console.WriteLine(X)
Console.ReadKey()
End Sub
End Module
Qwertiy писал(а):Вопрос не в том, почему ошибка, а в том, как её обойти.
Qwertiy писал(а):Для C# такое приведение является корректным.
DateTime X;
object Obj = null;
Obj = DateTime.Now as object;
X = Obj as DateTime;
System.Windows.Forms.MessageBox.Show(X.ToString());
FireFenix писал(а):Да ладно?
object obj = DateTime.Now as object;
DateTime? x = obj as DateTime?;
FireFenix писал(а):http://www.harding.edu/fmccown/vbnet_csharp_comparison.html
FireFenix писал(а):ждём некст версии
Сейчас этот форум просматривают: Yandex-бот и гости: 27