Массив в качестве входного параметра

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

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

asharky
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 22.06.2004 (Вт) 0:39
Откуда: Батоны-ларьки-поребрики...

Массив в качестве входного параметра

Сообщение asharky » 26.11.2007 (Пн) 12:00

Код: Выделить всё
    Public Sub New( _
    Optional ByVal _id As ULong = 0, _
    Optional ByVal _Category As UInteger = 0, _
    Optional ByVal _Name As String = "", _
    Optional ByVal _myPrices() As Double = {0.0, 0.0, 0.0, 0.0, 0.0}, _
    Optional ByVal _Remain As String = "", _
    Optional ByVal _gift As Boolean = False)
        Me.ID = _id
        Me.Category = _Category
        Me.Name = _Name
        Me.myPrices() = _myPrices
        Me.Remain = ""
        Me.gift = False
    End Sub

Выскакивает ошибка 'Expression expected' в строке ...As Double = {0.0, ... на первой фигурной скобке.

Почему?
В культурной столице проститутки берут книгами...

asharky
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 22.06.2004 (Вт) 0:39
Откуда: Батоны-ларьки-поребрики...

Re: Массив в качестве входного параметра

Сообщение asharky » 26.11.2007 (Пн) 12:09

А вот так всё хорошо :(

Код: Выделить всё
    Public Sub New( _
    Optional ByVal _id As ULong = 0, _
    Optional ByVal _Category As UInteger = 0, _
    Optional ByVal _Name As String = "", _
    Optional ByVal _myPrices() As Double = Nothing, _
    Optional ByVal _Remain As String = "", _
    Optional ByVal _gift As Boolean = False)
        Me.ID = _id
        Me.Category = _Category
        Me.Name = _Name
        Me.myPrices() = _myPrices
        Me.Remain = _Remain
        Me.gift = False
    End Sub


В чём тут нюансы?
В культурной столице проститутки берут книгами...

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 26.11.2007 (Пн) 14:24

asharky, в том, что массив есть объект, и соответственно единственное значение по умолчанию для него ест Nothing
Весь мир матрица, а мы в нем потоки байтов!

asharky
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 22.06.2004 (Вт) 0:39
Откуда: Батоны-ларьки-поребрики...

Сообщение asharky » 26.11.2007 (Пн) 17:32

Viper писал(а):asharky, в том, что массив есть объект, и соответственно единственное значение по умолчанию для него есть Nothing
Ну да, точно.

Спасибо тебе! После ФОРТРАНА мне первое время реально сложно мыслить объектными моделями :(
В культурной столице проститутки берут книгами...

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

Сообщение Sebas » 27.11.2007 (Вт) 23:02

Viper
незачёт


Optional ByVal _myPrices() As Double = new Double(){0.0, 0.0, 0.0, 0.0, 0.0}
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 28.11.2007 (Ср) 8:06

Sebas, у меня на такую конструкцию ругаецца...
ADD:
И правильно делает, ибо

MSDN писал(а):defaultvalue
Required for Optional parameters. Any constant or constant expression that evaluates to the data type of the parameter. If the type is Object, or a class, interface, array, or structure, the default value can only be Nothing.

Т.е. для массивов (в частности) значение по умолчанию может быть только Nothing.
Весь мир матрица, а мы в нем потоки байтов!


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

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

Сейчас этот форум просматривают: Google-бот и гости: 2

    TopList