更新:2007 年 11 月
错误消息
表达式目录树不能包含不安全的指针操作表达式目录树不支持指针类型,因为
更正此错误
请不要在尝试创建表达式目录树时使用指针类型。
示例
下面的示例生成 CS1944:
复制代码 | |
---|---|
// cs1944.cs // Compile with: /unsafe using System.Linq.Expressions; unsafe class Test { public delegate int* D(int i); static void Main() { Expression<D> tree = x => &x; // CS1944 } } using System.Linq.Expressions; unsafe class Test { public delegate int* D(int i); static void Main() { Expression<D> tree = x => &x; // CS1944 } } |
在有些情况下,可以在表达式目录树中包含指针。例如,考虑以下代码:
Expression<Func<int*[], int*[]>) e = (int*[] i)=>i;
此代码是有效的表达式目录树,因为类型参数都不是指针类型。它们是指针数组,而数组不是指针类型。此外,表达式目录树体对使用任何指针都不会存在危险。