使用Linq时我偶然发现了以下表达式:
bool biggerThan10Exists = numbers.Any(n => n > 10);
Run Code Online (Sandbox Code Playgroud)
Any的定义如下:
public static bool Any<TSource>(
this IEnumerable<TSource> source,
Func<TSource, bool> predicate
)
Run Code Online (Sandbox Code Playgroud)
Func的定义如下:
public delegate TResult Func<in T, out TResult>(
T arg
)
Run Code Online (Sandbox Code Playgroud)
因此,如果Any需要一个Func,它需要传递一个返回 int的委托,那么我怎么能传递一个lambda表达式,在我看来是一个void委托的定义,即
n => n > 10
Run Code Online (Sandbox Code Playgroud)
虽然我期待
n => return n > 10
Run Code Online (Sandbox Code Playgroud)
我很确定我明显错过了什么,但是什么?
在谈论自动生成的属性时,大多数示例都会讨论"简单"的值类型,例如字符串.但是,如果您想要访问IL中自动生成的这种值类型的字段以备份"自动属性",该怎么办?
编译器不允许这样做:"不能修改'Position'的返回值,因为它不是变量".我理解为什么我们不能修改这个返回值,但是我们如何访问这些字段呢?
说我们有
class A
{
Vector2 Position { get; set; }
public void Foo()
{
Position.X = 10.0f; // Not allowed!
}
}
Run Code Online (Sandbox Code Playgroud)
如何在A类中访问和设置Vector2实例的字段X?
我正在尝试使用AngleSharp库解析一些HTML,这个库到目前为止一直很棒.我现在偶然发现了一个我要解析以下HTML的场景:
<a name="someLink" href="#someLink">Link 1</a>
Some text that happens to be in between elements...
<b>Some stuff in bold</b>
Some more text
<br>
Run Code Online (Sandbox Code Playgroud)
当然,这段HTML包含了父元素等,但是这段HTML的解析元素的结果列表是:
有效地跳过元素之间的文本.我如何获得此文本?我认为AngleSharp会为这些部分生成TextNodes吗?
请注意,获取父级的完整TextContent不是我想要做的,因为我实际上仍然需要元素的结构来知道什么是什么.