c# - 将非 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);
}
解决方案
语法是一样的:
public bool ContainsKey(TKey key) => _dict.ContainsKey(key);
此外,这些并不是真正的 lambda 表达式,而是“表达式主体成员”;请参阅:https ://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/lambda-operator
推荐阅读
- reactjs - 在 react redux 中进行依赖 api 调用的正确方法是什么
- python - 如何使用 sqlalchemy 打印 mySQL 列
- html - 单选按钮标签未正确显示
- swift - collectionview 的 willDisplaycell 和 cellForItemAt 的值不同
- c# - 尝试连接到 Azure Web App 的授权错误
- javascript - 选择选项时给图像上课
- python - 在 matplotlib 3.1 中将字符串格式化为日期
- data-structures - 从预购和有序创建树时出错
- python - 杀死python中的孤儿线程
- rxjs - RXJS 在一秒钟内发出真,然后假