C#6.0语法糖
using System;
using static System.Math;//using static,仅仅引入类中的静态方法
namespace _6._0Syntax
{
class Program
{
delegate bool Predicate(string str);
static void Main(string[] args)
{
/*nameof
string a = nameof(Program.Main);
*/ /*String interpolation
var s = string.Format("{0} is so beauty{{~~~}}", "You");
Person p = new Person { Name = "senki", Age = 12 };
var s = $"{p.Name,20} is {p.Age:D3} year{{s}} old";
*/ /*NULL操作
string str = null;
int? length = str?.Length;
char? c = str?[0];
int l = str?.Length ?? 0;
List<Person> list = null;
int? b= list?[0]?.Name?.Length;
Predicate predicate = null;
if (predicate?.Invoke(str) ?? false)
{
}
*/ /*初始化时设定索引
var numbers = new Dictionary<int, string> {
[7]="liu",
[9]="zhan",
[15]="qi"
};*/ /* 异常过滤器
try
{
throw new CustomException();
}
catch (Exception e) when (IsCanCatch(e))
{
}
*/
Max(, );//通过using static,直接使用静态方法
Console.WriteLine();
Console.ReadLine();
} //表达式函数
static void Print(string str) => Console.WriteLine($"{str}"); class Person
{
public string Name { get; set; } = "senki";//自动属性初始值设定
public bool Sex { get; } = true;
public int Age { get; set; }
public string LastName => Name;//只读属性
public char this[int i]=>Name?[i]??'A';//索引 }
class CustomException : Exception
{
public override string Message
{
get
{
return "测试异常";
}
}
}
private static bool IsCanCatch(Exception e)
{
if (e is CustomException)
return true;
return false;
} struct School
{
public string Name { get; set; }
public int Age { get; }
public School(string name, int age)
{
Name = name;
Age = age;
}
//public School():this("",120)
//{ } } }
}
C#6.0语法糖的更多相关文章
- C# 6.0语法糖剖析
C# 6.0语法糖剖析 2016年12月16日 16:10:27 阅读数:586 版权声明:本文为博主http://www.feixueteam.net原创文章,未经博主允许不得转载. https ...
- 探索C#之6.0语法糖剖析
阅读目录: 自动属性默认初始化 自动只读属性默认初始化 表达式为主体的函数 表达式为主体的属性(赋值) 静态类导入 Null条件运算符 字符串格式化 索引初始化 异常过滤器when catch和fin ...
- C#6.0语法糖剖析(一)
1.自动属性默认初始化 使用代码 "; 编译器生成的代码: public class Customer { [CompilerGenerated] private string kBacki ...
- C#6.0语法糖剖析(二)
1.索引初始化 使用代码 ] = ] = ] = "thirteen"}; 编译器生成的代码 Dictionary<int, string> dictionary2 = ...
- C#语法糖之第二篇: 参数默认值和命名参数 对象初始化器与集合初始化器
今天继续写上一篇文章C#4.0语法糖之第二篇,在开始今天的文章之前感谢各位园友的支持,通过昨天写的文章,今天有很多园友们也提出了文章中的一些不足,再次感谢这些关心我的园友,在以后些文章的过程中不断的完 ...
- C#语法糖之第四篇: 扩展方法
今天继续分享C#4.0语法糖的扩展方法,这个方法也是我本人比较喜欢的方法.大家先想想比如我们以前写的原始类型不能满足现在的需求,而需要在该类型中添加新的方法来实现时大家会怎么做.我先说一下我没有学习到 ...
- C#语法糖之开篇
本人虽然大学不是学的计算机但是对于IT行业的热爱,依然决然进军IT行业了,自从踏进这个行业到现在也已经3年多了,从去年开发通过网上 了解博客园后深深的爱上这儿了,这里有很多牛人,通过拜读他们的代码,让 ...
- C#语法糖: 扩展方法(常用)
今天继续分享C#4.0语法糖的扩展方法,这个方法也是我本人比较喜欢的方法.大家先想想比如我们以前写的原始类型不能满足现在的需求,而需要在该类型中添加新的方法来实现时大家会怎么做.我先说一下我没有学习到 ...
- C#语法糖(Csharp Syntactic sugar)
目录 一.C#语法糖大汇总 1. 经过简化的Property2. 经过两次变异的委托写法3. 集合类的声明4. 集合类各个项的操作5. using == try finally6. 可爱的var7. ...
随机推荐
- querySelector选择器
querySelector选择器可以通过document和element来调用他们 用来代替getElementById var body=document.querySelector("b ...
- jdk与cglib的动态代理
JDK动态代理中包含一个类和一个接口: InvocationHandler接口: public interface InvocationHandler { public Object invoke(O ...
- 转载:svn clean up 失败解决方法
转载网址:http://www.tuicool.com/articles/biy6na 今天svn遇到一个头疼的问题,最开始更新的时候失败了,因为有文件被锁住了.按照以往的操作,我对父目录进行clea ...
- 手机端禁止iPhone字体放大
/*禁止iphone字体放大 */ html { -webkit-text-size-adjust: none; }
- acdream暴力专场中的优美暴力
F - 小晴天老师系列——苹果大丰收 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Other ...
- 设置 cell点击 背景色
//设置 cell点击 背景色 cell.selectionStyle = UITableViewCellSelectionStyleDefault; cell.selectedBackgroundV ...
- iOS 3D Touch功能 3 -备
新的触摸体验——iOS9的3D Touch 一.引言 二.在模拟器上学习和测试3D Touch 附.SBShortcutMenuSimulator的安装和使用 三.3D Touch的主要应用 四.3D ...
- altium designer不经过原理图直接在空白pcb上加封装然后画线
如果是复杂点的PCB,建议还是画下SCH,如果PCB只有几个元件,那么可以用这种方法,想不画原理图,直接进行布线,往往是很多初学者最想知道的,但是这也一定不是初学者能学到的.因为你买的书,都是按画PC ...
- Altium Design 中差分走线的设置
1.在原理图中,将要设置的差分对的网络名称的前缀取相同的名字,在前缀后面加后缀分别为_N 和_P,并且加上差分对指示.具体操作如下:2.在原理图界面下,单击 Place>>Directiv ...
- java基本类型作为成员变量时的初始值
package primitivetypedefaultvalue; public class ListDefaultValue { public static void main(String[] ...