快速预览:C# 3.0的新东西

简介: Lambda 表达式: Func doubleAppend= x => x + x;Console.WriteLine (doubleAppend(“test”)); // testtest LINQ 查询: string[] n...

Lambda 表达式:

Func<string, string> doubleAppend= x => x + x;
Console.WriteLine (doubleAppend(“test”)); // testtest

LINQ 查询:

string[] names = { "Tom", "Dick", "Harry" };
IEnumerable<string> filteredNames =
  Enumerable.Where (names, n => n.Length >= 4);    // 字符长度大于等于4的名字

扩展方法:

string[] names = { "Tom", "Dick", "Harry" };
IEnumerable<string> filteredNames = names.Where (n => n.Length >= 4);

 隐式类型的局部变量:

var filteredNames = names.Where (n => n.Length == 4);

查询理解语法:

var filteredNames = from n in names where n.Length >= 4 select n;

匿名类型:

var query = from n in names where n.Length >= 4
            select new {
                         Name = n,
                         Length = n.Length
                       };
var dude = new { Name = "Bob", Age = 20 };

隐藏类型的数组:

var dudes = new[]
{
   new { Name = "Bob", Age = 20 },
   new { Name = "Rob", Age = 30 }
};

对象初始化:

class Bunny
{
public string Name;
public bool LikesCarrots;
public bool LikesHumans;
}

// C# 3.0
Bunny b1 = new Bunny { Name="Bo", LikesCarrots=true, LikesHumans=false };

// C# 2.0
Bunny b2 = new Bunny();
b2.Name = "Bo";
b2.LikesHumans = false;

自动的属性:

public class Stock
{
  // C# 3.0:
              public decimal X { get; set; }

  // C# 2.0:
              private decimal y;
              public decimal Y
              {
                get { return y;  }
                set { y = value; }
              }
}

Partial 方法:

// PaymentFormGen.cs — auto-generated
partial class PaymentForm
{
  ...
  partial void ValidatePayment (decimal amount);
}

// PaymentForm.cs — hand-authored
partial class PaymentForm
{
  ...
  partial void ValidatePayment (decimal amount)
  {
    if (amount > 100)
      ...
  }
}

表达式树:

Expression<Func<string, bool>> predicate = s => s.Length > 10;
Func<string, bool> fun = predicate.Compile();
Console.WriteLine(fun("test").ToString());

目录
打赏
0
0
0
0
20
分享
相关文章
|
10月前
|
API
uniapp点击图片放大预览
uniapp点击图片放大预览
527 0
小程序查看(预览)文件
小程序查看(预览)文件
616 0
微信小程序图片放大预览效果的实现,轮播图点击放大预览
微信小程序图片放大预览效果的实现,轮播图点击放大预览
1127 0
使用resize实现强大的图片拖拽切换预览功能
本文将介绍一个非常有意思的功能,使用纯 CSS 利用 resize 实现强大的图片切换预览功能。类似于这样:
前端H5选图预览到上传
在金融性质的App里,选择本地相册图片或者拍照,然后预览并且上传是一个典型的使用场景,比如常见的身份证信息上传。在最近接触的几家银行客户里,都反馈有类似的场景,并且在使用上都或多或少的遇到一些问题,最后找到我们,希望我们提供一些最佳实践。在这里分享下对应场景的一些优化解决方案。
435 0
前端H5选图预览到上传
video 预览图 -去掉下载和全屏按钮
谷歌浏览器版本是54.0-57.0之间,并且也出现了视频右下角有按钮的情况都可以使用下面的代码。
346 0
video 预览图 -去掉下载和全屏按钮
文档预览功能使用技巧(4)---图片水印
智能媒体管理提供了文档预览功能,通过快速搭建文章的介绍,详细描述了使用“文档转换 + JS 前端渲染引擎”实现文档预览的过程,本文将介绍预览功能中的 图片水印(wmType=2 和 wmValue=url 参数)技巧。
2207 0