【发布时间】:2017-06-09 21:23:45
【问题描述】:
我正在使用 VS 2017 RC 和新的 C# 功能:
class Program
{
class A
{
public int Z1 { get; set; }
public int Z2 { get; set; }
}
static void Main(string[] args)
{
var q = new[] { new A() }.Select(x => new { x.Z2 });
Do(q.First());
int Do<T>(T p)
{
Console.WriteLine(p.GetType().Name);
return 0;
}
}
}
上面的代码编译并输出
"<>f__AnonymousType0`1"
但是,以下不是:
Console.WriteLine(p.Z2);
生产
错误 CS1061 'T' 不包含 'Z2' 的定义并且没有 接受“T”类型的第一个参数的扩展方法“Z2”可以是 找到(您是否缺少 using 指令或程序集引用?)
这件事还没有完成吗?发布后,我们能否在本地函数中访问匿名类型的属性?
【问题讨论】:
-
你能添加任何让你认为它应该工作的参考来源吗?还没看过。
-
这将与非本地函数的行为相同。
标签: c# .net anonymous-types c#-7.0