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 新语法糖的更多相关文章

  1. C++11新语法糖之尾置返回类型

    C++11的尾置返回类型初衷是为了方便复杂函数的声明和定义,但是当复杂度稍微提升一些的时候很明显能注意到这种设计的作用微乎其微. 首先考虑如下代码: C++ //返回指向数组的指针 auto func ...

  2. Vue3 Composition API写烦了,试试新语法糖吧—setup script

    前言 Vue3发布近一年了,相信大家对Vue3的新特性,新语法都很熟悉了.那么在使用Composition API的过程中,有没有觉得整个过程比较繁琐.比如你的模板里用到了大量的state和方法的时候 ...

  3. 各个JDK版本新语法糖

    java5语法扩充 自动装箱.泛型.动态注解.枚举.可变长参数.循环遍历等语法 JDK7 fork/join jdk8  二进制数的原生支持.switch语句中支持string <>操作符 ...

  4. C# 中居然也有切片语法糖,太厉害了

    一:背景 1. 讲故事 昨天在 github 上准备找找 C# 9 又有哪些新语法糖可以试用,不觉在一个文档上看到一个很奇怪的写法: foreach (var item in myArray[0..5 ...

  5. vue3 学习笔记(九)——script setup 语法糖用了才知道有多爽

    刚开始使用 script setup 语法糖的时候,编辑器会提示这是一个实验属性,要使用的话,需要固定 vue 版本. 在 6 月底,该提案被正式定稿,在 v3.1.3 的版本上,继续使用但仍会有实验 ...

  6. C# 6.0新特性---语法糖

    转载:http://www.cnblogs.com/TianFang/p/3928172.html 所谓语法糖就是在编译器里写做文章,达到简化代码书写的目的,要慎重使用,省略过多不易理解. NULL检 ...

  7. C#7.0新特性和语法糖详解

    转自IT之家网--DotNet码农:https://www.ithome.com/html/win10/305148.htm 伴随Visual Studio 2017的发布,C#7.0开始正式走上工作 ...

  8. 探索C#之6.0语法糖剖析

    阅读目录: 自动属性默认初始化 自动只读属性默认初始化 表达式为主体的函数 表达式为主体的属性(赋值) 静态类导入 Null条件运算符 字符串格式化 索引初始化 异常过滤器when catch和fin ...

  9. C#语法糖大汇总

    首先需要声明的是"语法糖"这个词绝非贬义词,它可以给我带来方便,是一种便捷的写法,编译器会帮我们做转换:而且可以提高开发编码的效率,在性能上也不会带来损失.这让java开发人员羡慕 ...

随机推荐

  1. arcgis python 开启编辑会话和编辑操作、在表中创建行、停止编辑操作以及提交编辑会话。

    import arcpy import os fc = 'Database Connections/Portland.sde/portland.jgp.schools' workspace = os. ...

  2. C# 多线程Thread.IsBackground=True的作用

    C#中多线程的线程加.IsBackground = true与不加有什么区别? 按照MSDN上讲:“获取或设置一个值,该值指示某个线程是否为后台线程.” 其实这个解释并不到位,至少应该解释一下后台线程 ...

  3. SQL-W3School-函数:SQL LEN() 函数

    ylbtech-SQL-W3School-函数:SQL LEN() 函数 1.返回顶部 1. LEN() 函数 LEN 函数返回文本字段中值的长度. SQL LEN() 语法 SELECT LEN(c ...

  4. 遍历List集合删除元素的出现报错

    遍历List集合删除元素的出现报错   遍历List集合删除元素的时候会发生索引越界异常或内容遍历不全等问题. 例子: List<String> al = new ArrayList< ...

  5. 将Python的Django框架与认证系统整合的方法

    将Python的Django框架与认证系统整合的方法 这篇文章主要介绍了将Python的Django框架与认证系统整合的方法,包括指定认证后台和编写认证后台等内容,需要的朋友可以参考下 将Django ...

  6. LeetCode_172. Factorial Trailing Zeroes

    172. Factorial Trailing Zeroes Easy Given an integer n, return the number of trailing zeroes in n!. ...

  7. (十六)Centos之安装mysql

    第一步:获取mysql YUM源 进入mysql官网获取RPM包下载地址 https://dev.mysql.com/downloads/repo/yum/ 点击 下载 右击 复制链接地址 https ...

  8. UIwindow ---密码框

    程序运行显示结果如下 : 验证密码输入错误显示如下: 代码如下 : 1> ////  PasswordInputWindow.m//  UIWindow--密码框////  Created by ...

  9. PostgreSQL创建database默认编码为UTF-8

    在psql中执行如下代码: create database logdb encoding='UTF8';

  10. node更改默认npm阿里地址

    npm config set registry https://registry.npm.taobao.orgsudo npm install cnpm -g --registry=https://r ...