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. php - thinkphp3.2-phpQrcode生成二维码

    import('/Doctor.Logic.phpqrcode',APP_PATH,'.php');// import('@.Doctor.Logic');$value = 'http://www.c ...

  2. Hortonworks,快速上手 Hadoop 的套件

    最近我在思考的一件事情:如何帮助团队 SQL 开发快速掌握大数据相关技术呢?面对疯狂暴涨的数据,SQL Server 存储成本越来越高了,日志的增长量也极大超过预期,隔三差五总有空间不足导致的应用异常 ...

  3. IfcSlab

    // IfcRoot ----------------------------------------------------------- // attributes: // shared_ptr& ...

  4. 39 Flutter仿京东商城项目 收货地址列表、增加 修改收货地址布局、弹出省市区选择器

    加群452892873 下载对应39课文件,运行方法,建好项目,直接替换lib目录 pubspec.yaml city_pickers: ^ AddressAdd.dart import 'packa ...

  5. PAT 甲级 1036 Boys vs Girls (25 分)(简单题)

    1036 Boys vs Girls (25 分)   This time you are asked to tell the difference between the lowest grade ...

  6. delphi字符串分隔函数用法实例

    这篇文章主要介绍了delphi字符串分隔函数用法,通过自定义函数SeparateTerms2实现将字符串分割后存入字符串列表的功能,具有一定的实用价值,需要的朋友可以参考下 本文实例讲述了delphi ...

  7. django模板--条件控制标签

    条件控制标签 在django模板中可以通过条件控制标签进行逻辑控制,条件控制标签的语法如下: {% if condition1 %} ... {% elif condition2 %} ... {% ...

  8. python面向对象之初步认识

    面向对象 类,用来描述一类事物的相同的特征或者属性.比如说,狗,狗属于一种统称,狗还分有不同的种类,比如,牧羊犬,蝴蝶犬,京巴等等,他们都有相同的特征,一个头,两个耳朵,四条腿,会跑,会吃东西,会汪汪 ...

  9. 【miscellaneous】【ARM-Linux开发】ARM平台基于嵌入式Linux Gstreamer 使用

    1). 简介 随着ARM平台性能的日益强大和嵌入式设备的发展,对于多媒体处理如音视频播放,摄像头,流媒体处理等需求也日益增多,本文就通过几个基于嵌入式Linux下多媒体应用的示例来简单展示下使用Gst ...

  10. JPEG与JPEG2000

    JPEG与JPEG2000 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 背景介绍 JPEG 全名为 Joint Photographic Experts ...