Объект массива инициализатора объекта VB.net - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь использовать инициализатор объекта для настройки пользовательского массива в vb.net, может быть только 1 запись или может быть 100 для любого данного экземпляра этого массива. Я успешно выполнил эту задачу в C #, но не могу найти документацию по ее завершению в Vb.net

У меня есть модель:

Public Class Artist
    Public Name As String
    Public Task As String
End Class

в другой модели мы дополнительно перечислили этот объект как часть коллекции

    Public Property Artists() As Artist

, что приводит меня к контроллеру

            .Artists = New Artist() With
            {.Name = "bob", .Task = "1"}

успешно для 1 записи; Как бы я добавил еще одну запись в том же экземпляре объекта, как, например, в C #

Artists = new Artist[]
{
    new Artist() { name = "bob", Task = "1" },
    new Artist() { name = "fred", Task = "2" },
    new Artist() { name = "george", Task = "3" }
}

все это относится к самому утверждению with, являющемуся частью другого объекта, который, кажется, исключает традиционные измерения

    Dim cB = New CB {
        .StoryTitle = "Test"
        .IsbnNumber = 200
        .Artists = new Artists...
}

Окончательное решение

    Dim cB = New CB With {
        .StoryTitle = "Test",
        .IsbnNumber = 200,
        .Artists = New Artist() {New Artist() With {
    .Name = "bob",
    .Task = "1"
}, New Artist() With {
    .Name = "fred",
    .Task = "2"
}, New Artist() With {
    .Name = "george",
    .Task = "3"
}}
    }

Ответы [ 2 ]

0 голосов
/ 01 апреля 2019

Я успешно выполнил эту задачу в C #, но не могу найти документацию по ее выполнению в Vb.net

Скачать ILSpy , перетащите ваш файл Exe или Dll, который вы успешно создали с помощью C #, и сохраните проект как проект VB.Net.

Я говорю на двух языках с C # и VB.Net, но когда дело доходит до Lambda и LINQ в VB.Net, я так переводю между языками.

Или еще более простой и быстрый способ: http://converter.telerik.com/

C #:

Artists a = new Artist[]
{
    new Artist() { name = "bob", Task = "1" },
    new Artist() { name = "fred", Task = "2" },
    new Artist() { name = "george", Task = "3" }
}

VB.Net:

Dim a As Artists = New Artist() {New Artist() With {
    .name = "bob",
    .Task = "1"
}, New Artist() With {
    .name = "fred",
    .Task = "2"
}, New Artist() With {
    .name = "george",
    .Task = "3"
}}
0 голосов
/ 01 апреля 2019

Ваш синтаксис немного отключен. Попробуйте это:

    Dim artists() As Artist = {
        New Artist() With {.Name = "bob", .Task = "1"},
        New Artist() With {.Name = "bob", .Task = "1"}
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...