深入理解 c# 第一章 c#3 显示未知价格的产品
2018-04-02 16:30
357 查看
class DisplayProductsWithUnknownPrice { static void Main() { List<ProductWithNullablePrice> products = ProductWithNullablePrice.GetSampleProducts(); foreach (ProductWithNullablePrice product in products.Where(p => p.Price == null)) { Console.WriteLine(product.Name); } } }跟 return p.Price == null 匿名方法 作用是一样的
public string Name { get; private set; }
public decimal? Price { get; private set; }? 表示可以将null 的值传过来,null含义 从“不指向任何对象的一个特殊引用”变成“没有给出其他数据的任意可空类型的一个特殊值
输入 public static List<ProductWithNullablePrice> GetSampleProducts()
{
return new List<ProductWithNullablePrice>
{
new ProductWithNullablePrice { Name="West Side Story", Price = 9.99m },
new ProductWithNullablePrice { Name="Assassins", Price=14.99m },
new ProductWithNullablePrice { Name="Frogs", Price=13.99m },
new ProductWithNullablePrice { Name="Sweeney Todd", Price=null}
};
}输出
Sweeney Todd
处理未知数据的方法
c#1 要么维护一个标志,要么更改引用类型的语义,要么利用一个魔数 就是自己知道意义 但其他人不知道意义的数
c#2 可空类型避免了 c#1 的各种繁琐方案 语法糖简化编程
c#3 可选参数简化 默认设置
相关文章推荐
- 深入理解 c# 第一章 使用异步函数在windows form 中显示产品 c#5
- 【第一章】C#的进化史——表示产品的未知价格
- 深入理解 c# 第一章 使用IComparer 对 ArrayList 进行排序
- 深入理解 c# 第一章 运行IronPython 并动态获取 其属性 C#4
- 深入理解 c# 第一章 使用IComparer<Product> 对 List<Product> 进行排序
- 深入理解 c# 第一章 使用LINQ 查询表达式
- 深入理解 c# 第一章 使用扩展方法对 List<Product> 排序
- 深入理解 c# 第一章 用lambda表达式作为测试
- 深入理解 c# 第一章 使用 COM将数据 保存到 Excel中 c#4
- 深入理解 c# 第一章 连接(joining) 过滤(filtering) 排序(ordering) 投影(projecting) c#3
- 深入理解 c# 第一章 用LINQ 查询 xml 文件
- 深入理解 c# 第一章 使用IComparer<Product>委托 对 List <Product> 进行排序
- 深入理解 c# 第一章 循环 测试 打印
- 深入理解 c# 第一章 对SQL数据库 应用查询表达式 C#3
- 深入理解 c# 第六章 显示迭代器及其调用者之间的调用序列 c#2
- 深入理解 c# 第一章 使用lambda表达式 对 List <Product> 进行排序
- 深入理解 c# 第一章 测试和打印分开进行 c#2
- 【Back to base】深入理解计算机系统 读书笔记 第一章 计算机系统漫游
- C#值类型和引用类型的深入理解
- 深入理解C#中foreach遍历的使用方法