optional = null

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Dmitriy Solomnikov
Постоялец
Постоялец
 
Сообщения: 407
Зарегистрирован: 10.11.2004 (Ср) 13:04
Откуда: Москва

optional = null

Сообщение Dmitriy Solomnikov » 23.01.2006 (Пн) 14:36

как в optional сделать чтобы дата была либо нулем, либо чем-то вроде nothing, т.е. нужен маркер, с помощью которого можно анализировать передают дату или нет?

Код: Выделить всё
sub mysub(optional d as date= ...)

end sub

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 23.01.2006 (Пн) 19:52

Использовать Overload

Sub x()

End Sub

Sub x(d as date)

end sub
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Dmitriy Solomnikov
Постоялец
Постоялец
 
Сообщения: 407
Зарегистрирован: 10.11.2004 (Ср) 13:04
Откуда: Москва

Сообщение Dmitriy Solomnikov » 23.01.2006 (Пн) 21:09

Sebas писал(а):Использовать Overload

Sub x()

End Sub

Sub x(d as date)

end sub


так там около 2-х десятков параметров )))

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 24.01.2006 (Вт) 13:22

Ну так, опциональный один?
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Dmitriy Solomnikov
Постоялец
Постоялец
 
Сообщения: 407
Зарегистрирован: 10.11.2004 (Ср) 13:04
Откуда: Москва

Сообщение Dmitriy Solomnikov » 24.01.2006 (Вт) 14:38

нет, опциональные все. В этом и проблема

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 24.01.2006 (Вт) 15:25

Ну необязательные параметры не могут следовать после обязательных, поэтому всего 20 вариантов перегрузки будет :)

А вообще, .net мне этим не нравится...

Либо
Код: Выделить всё
Private Sub asd(Optional ByVal d1 As Object = Nothing, Optional ByVal d2 As Object = Nothing)
  MsgBox(DirectCast(d1, DateTime).Subtract(DirectCast(d2, DateTime)).ToString)
End Sub
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Dmitriy Solomnikov
Постоялец
Постоялец
 
Сообщения: 407
Зарегистрирован: 10.11.2004 (Ср) 13:04
Откуда: Москва

Сообщение Dmitriy Solomnikov » 24.01.2006 (Вт) 15:59

О! это идея передавать их как object.

Спасибо.


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 29

    TopList