首页 > 解决方案 > 将非 void 方法声明为 lambda

问题描述

我真的很喜欢你如何使用 lambdas 快速实现接口,代码变得更短且更具可读性......我们可以使用 lambdas 来实现属性

public ICollection<TKey> Keys => _dict.Keys;

public TValue this[TKey key] { get => _dict[key]; set => _dict[key] = value; }

...甚至是方法

public void Clear() => _dict.Clear();

但我不知道如何使用 lamdbas 重写非 void 方法?比如这个:

public bool ContainsKey(TKey key)
{
    return _dict.ContainsKey(key);
}

标签: c#lambda

解决方案


语法是一样的:

public bool ContainsKey(TKey key) => _dict.ContainsKey(key);

此外,这些并不是真正的 lambda 表达式,而是“表达式主体成员”;请参阅:https ://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/lambda-operator


推荐阅读