如何从 C# 中传递的对象中检索单个值?
How can I retrieve single values from passed objects in C#?
在使用这种方法之前,我有一些方法包含四个或五个参数,因此我想将其中的大部分压缩到一个对象中。 TestOptions() 对象有额外的可选值,比如 'name' 或 'location'.
我在单独检索对象值时遇到问题。如何在 Setup() 方法中使用 TestOptions() 对象的指定值?
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;
}
}
谢谢。
我不知道我是否理解你的问题,但如果你想检索 TestOptions 的属性抛出一个对象变量,你需要先转换它,像这样:
string brand = ((TestOptions)values).brand;
string id = ((TestOptions)values).id;
// etc...
无论如何,我建议您通过接收 TestOption 值而不是通用对象来更改您的方法,或者为每个不同的对象创建相同方法的不同实现。
您可以使 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;
}
在使用这种方法之前,我有一些方法包含四个或五个参数,因此我想将其中的大部分压缩到一个对象中。 TestOptions() 对象有额外的可选值,比如 'name' 或 'location'.
我在单独检索对象值时遇到问题。如何在 Setup() 方法中使用 TestOptions() 对象的指定值?
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;
}
}
谢谢。
我不知道我是否理解你的问题,但如果你想检索 TestOptions 的属性抛出一个对象变量,你需要先转换它,像这样:
string brand = ((TestOptions)values).brand;
string id = ((TestOptions)values).id;
// etc...
无论如何,我建议您通过接收 TestOption 值而不是通用对象来更改您的方法,或者为每个不同的对象创建相同方法的不同实现。
您可以使 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;
}