Как я могу получить отдельные значения из переданных объектов в C #? - PullRequest
0 голосов
/ 05 декабря 2018

До этого подхода у меня было несколько методов, которые включали четыре или пять параметров, поэтому я хочу сжать большинство из них в объект.Объект TestOptions () имеет дополнительные необязательные значения, такие как «имя» или «местоположение».

У меня проблемы с получением значений объекта по отдельности.Как использовать указанные значения из объекта TestOptions () в методе Setup ()?

    public async Task Test_One()
    {
        await Setup(new TestOptions() { brand = "Brand1", id = 10 }, new List<string> { "user1@abc.com" });
    }

    public async Task Setup(object values, List<string> emailAddresses)
    {
        //Do work here that uses 'brand' and 'id' individually
    }

public class TestOptions
{
    public string brand
    {
        get; set;
    }

    public string id
    {
        get; set;
    }
}

Спасибо.

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Вы можете либо сделать подпись для Setup взять строго типизированный объект:

public async Task Setup(TestOptions values, List<string> emailAddresses)
{
    //Do work here that uses 'brand' and 'id' individually
    var brand = values.brand;
}

, либо привести значение:

public async Task Setup(object values, List<string> emailAddresses)
{
     //Do work here that uses 'brand' and 'id' individually
     var typed = (TestObject)values;
     var brand = typed .brand;
}
0 голосов
/ 05 декабря 2018

Я не знаю, понял ли я ваш вопрос, но если вы хотите получить свойства TestOptions, выдают переменную объекта, вам нужно сначала привести ее, что-то вроде этого:

string brand = ((TestOptions)values).brand;
string id = ((TestOptions)values).id;
// etc...

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...