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. ...
随机推荐
- Mysql权限控制 - 允许用户远程连接(转载)
Mysql为了安全性,在默认情况下用户只允许在本地登录,可是在有此情况下,还是需要使用用户进行远程连接,因此为了使其可以远程需要进行如下操作: 一.允许root用户在任何地方进行远程登录,并具有所有库 ...
- jquery升级到新版本报错[jQuery] Cannot read property ‘msie’ of undefined错误的解决方法(转)
最近把一个项目的jQuery升级到最新版,发现有些页面报错Cannot read property 'msie' of undefined.上jQuery网站上搜了一下,原因是$.browser这个a ...
- Core Data-备用
Core Data是一个功能强大的层,位于SQLite数据库之上,它避免了SQL的复杂性,能让我们以更自然的方式与数据库进行交互.Core Data将数据库行转换为OC对象(托管对象)来实现,这样无需 ...
- AE-模板替换->愉快今日--视频样片!
- Head First --- Python 第一章
List 1. python -V 查看python当前版本 2. list.pop() 删除列表里的最后一个元素,并返回删除元素的值 3. list.extend(['a','b','c']) 在原 ...
- SignalR Troubleshooting
This document contains the following sections. Calling methods between the client and server silentl ...
- Android中观察者模式的升入理解
以前对Java中的观察者模式只知道一点皮毛,在接触Android的过程中,逐渐认识到观察者模式是如此的重要,android中许多地方都用到了观察者模式例如ContentResolver操作,来总结一下 ...
- cocos2d-x 头文件中添加方法变量导致编译报错
代码如下: HelloWorldScene.h #ifndef __HELLOWORLD_SCENE_H__#define __HELLOWORLD_SCENE_H__ #include " ...
- 笔记:java并发实践2
public interface Executor { void execute(Runnable command); } 虽然Executor是一个简单的接口,但它为灵活且强大的异步任务框架提供了基 ...
- HDU5107---K-short Problem (线段树区间 合并、第k大)
题意:二维平面上 N 个高度为 Hi 建筑物,M次询问,每次询问输出 位于坐标(x ,y)左下角(也就是xi <= x && yi <= y)的建筑物中的第k高的建筑物的高 ...