关于C#7 新语法糖
C#7新语法糖
1.Switch 使用 goto 使用
var kk = ;
switch (kk)
{
case :
Console.WriteLine();
goto case ;
case :
Console.WriteLine();
goto case ;
case :
Console.WriteLine();
goto default;
case :
Console.WriteLine();
goto default;
default:
Console.WriteLine("default");
break;
} /**switch 用法, 在循环中可 分别多种类型 而且可以 进行类型,内容初步判断**/
List<object> objList = new List<object> { "", , 1.22F };
var sum = 0d;
foreach (var item in objList)
{
switch (item)
{
case string str when int.TryParse(str, out int result):
sum += result;
break;
case int number:
sum += number;
break;
case float number when number > :
sum += number;
break;
default:
break;
}
} Console.WriteLine(sum);
2.Object?.属性 新语法糖, 可以排除 对象为Null 的情况 , 不能排除属性为null 的情况
TmpClass1 obj1 = null; //对象为null
var int16 = obj1?.tmpAtt ?? ;// ??0 是判断 如果属性为空,则给默认值
var str = obj1?.tmpAtt1 ?? "";// ??0 是判断 如果属性为空,则给默认值
Console.WriteLine(int16);
Console.WriteLine(str);
int16 = ;
Console.WriteLine($"平均成绩:{(int16 > 80 ? int16 : 0):F2}");
3.Tuple 元组使用 与 解元组,元组调整为结构体,以前是类
Tuple<int, int> tuple = new Tuple<int, int>(, );
Console.WriteLine($"第一个元素item1:{tuple.Item1} 第二个元素item2:{tuple.Item2}");
(string Message, int Code) tuple7 = ("请求失败", );
Console.WriteLine($"第一个元素Message:{tuple7.Message} 第二个元素Code:{tuple7.Code}");
var tuple7t = (Message: "请求成功!", Code: );
Console.WriteLine($"第一个元素Message:{tuple7t.Message} 第二个元素Code:{tuple7t.Code}"); /**解析方法**/
var (Message, Code) = tuple7;
Console.WriteLine($"解析元组 第一个元素Message:{Message} 第二个元素Code:{Code}");
var (Item1, Item2) = tuple;
Console.WriteLine($"解析元组 第一个元素Item1:{Item1} 第二个元素Item2:{Item2}"); TmpClass1 obj1 = new TmpClass1(, "牛牛");
var (age, name) = obj1;
Console.WriteLine($"解析元组 第一个元素age:{age} 第二个元素name:{name}");
4.参数 params 使用 可以代替数组,不过可读性不强
class Program
{
Main方法
static void Main(string[] args)
{
AnyWrite("text", , "abvc");
} static void AnyWrite(params object[] data)
{
foreach (var item in data)
{
Console.WriteLine(item);
}
}
}
关于C#7 新语法糖的更多相关文章
- C++11新语法糖之尾置返回类型
C++11的尾置返回类型初衷是为了方便复杂函数的声明和定义,但是当复杂度稍微提升一些的时候很明显能注意到这种设计的作用微乎其微. 首先考虑如下代码: C++ //返回指向数组的指针 auto func ...
- Vue3 Composition API写烦了,试试新语法糖吧—setup script
前言 Vue3发布近一年了,相信大家对Vue3的新特性,新语法都很熟悉了.那么在使用Composition API的过程中,有没有觉得整个过程比较繁琐.比如你的模板里用到了大量的state和方法的时候 ...
- 各个JDK版本新语法糖
java5语法扩充 自动装箱.泛型.动态注解.枚举.可变长参数.循环遍历等语法 JDK7 fork/join jdk8 二进制数的原生支持.switch语句中支持string <>操作符 ...
- C# 中居然也有切片语法糖,太厉害了
一:背景 1. 讲故事 昨天在 github 上准备找找 C# 9 又有哪些新语法糖可以试用,不觉在一个文档上看到一个很奇怪的写法: foreach (var item in myArray[0..5 ...
- vue3 学习笔记(九)——script setup 语法糖用了才知道有多爽
刚开始使用 script setup 语法糖的时候,编辑器会提示这是一个实验属性,要使用的话,需要固定 vue 版本. 在 6 月底,该提案被正式定稿,在 v3.1.3 的版本上,继续使用但仍会有实验 ...
- C# 6.0新特性---语法糖
转载:http://www.cnblogs.com/TianFang/p/3928172.html 所谓语法糖就是在编译器里写做文章,达到简化代码书写的目的,要慎重使用,省略过多不易理解. NULL检 ...
- C#7.0新特性和语法糖详解
转自IT之家网--DotNet码农:https://www.ithome.com/html/win10/305148.htm 伴随Visual Studio 2017的发布,C#7.0开始正式走上工作 ...
- 探索C#之6.0语法糖剖析
阅读目录: 自动属性默认初始化 自动只读属性默认初始化 表达式为主体的函数 表达式为主体的属性(赋值) 静态类导入 Null条件运算符 字符串格式化 索引初始化 异常过滤器when catch和fin ...
- C#语法糖大汇总
首先需要声明的是"语法糖"这个词绝非贬义词,它可以给我带来方便,是一种便捷的写法,编译器会帮我们做转换:而且可以提高开发编码的效率,在性能上也不会带来损失.这让java开发人员羡慕 ...
随机推荐
- qt mvc3
前面两节讲的model是一维的,这次开始二维的也就是我们常说的Table,相对与list,我们多了一个列的概念. 下面讲解一个例子.我先说明一下我们这个例子,在程序目录下,我们有一个文本文件,其中存放 ...
- laravel 查询数据库first()返回的数据转数组
使用 get_object_vars()可以将他抓转为数组get_object_vars — 返回由对象属性组成的关联数组: 在laravel中其实还可以用 toArray(); json_decod ...
- P5663 加工零件
P5663 加工零件 题解 暴力搜索 搜索显然会TLE #include<iostream> #include<cstdio> #include<cstdlib> ...
- ISO/IEC 9899:2011 条款6.4.1——关键字
6.4.1 关键字 语法 1.以下为关键字: auto break case char const continue default do double ...
- 解决kali无法连接网络问题
键入 ifconfig -a 查看网卡 ,是否存在 键入 leafpad /etc/network/interfaces 查看其中是否有如下语句,没有添加上即可:auto eth0iface eth0 ...
- Delphi ADOQuery的速度优化
今天终于把纠缠了几天的问题改完了,说到底只是一个很小的问题,就是ADOQuery的一个小属性. 把控件DBGridEh的一列的checkbox设为true,将其绑定DataSource和ADOQuer ...
- (九)UML之活动图
一.概念 二. 在Rational rose 中画活动图 2.1 创建Activity Diagram 2.2 画图
- php注册自动加载函数
$autoload_func = function($class) { $class = str_replace('\\', '/', $class); $file_name = dirname(__ ...
- Jrebel激活方法
参考 https://www.yanjiayu.cn/posts/3eecb801.html https://gitee.com/gsls200808/JrebelLicenseServerforJa ...
- nginx限流方案的实现(三种方式)
通过查看nginx官方文档,小弟查看到了三种nginx限流方式. 1.limit_conn_zone 2.limit_req_zone 3.ngx_http_upstream_module 前两种只能 ...