【发布时间】:2021-02-05 18:55:16
【问题描述】:
我正在尝试将匿名对象设为“输出”参数。
这段代码编译:
public T GenericTest<T>(T Input)
{
return Input;
}
public void AnonymousObjectTest()
{
var AnonObj = new { Prop = "hello" };
var Str = GenericTest(AnonObj).Prop;
Console.WriteLine(Str); //outputs "hello" to the console
}
但是,我怎样才能让它工作?请参阅以下内容。我正在尝试使用匿名对象作为“OutParamTest”方法的“输出”参数。
老实说,它应该与返回泛型类型 T 没有什么不同,因为方法的输出类型被声明为与输入相同。但是,我不知道在方法调用中除了“object”之外使用哪种类型:
public void OutParamTest<T>(T Input, out T Output)
{
Output = Input;
}
public void AnonymousObjectTest()
{
var AnonObj = new { Prop = "hello" };
OutParamTest(AnonObj, out object Test); //how can I make the 'out' parameter type the same as the 'input' parameter?
var Str = Test.Prop; //CS1061: 'object' does not contain a definition for 'Prop'
Console.WriteLine(Str);
}
【问题讨论】:
标签: c# anonymous-types generic-type-argument out-parameters