首页 > 编程语言 >[Unity脚本运行时更新]C#7.1新特性

[Unity脚本运行时更新]C#7.1新特性

时间:2023-04-28 16:01:55浏览次数:111  
标签:count C# 元组 Unity 7.1 label


洪流学堂微信公众号。

本文是该系列《Unity脚本运行时更新带来了什么?》的第6篇。
洪流学堂公众号回复runtime,获取本系列所有文章。

Unity2017-2018.2中的4.x运行时已经支持到C#6,之前的文章已经介绍完毕。Unity2018.3将支持到C# 7.3,今天我们先来看看C#7.1新特性能给代码带来什么吧,不过这些特性得等到Unity2018.3才可以用哦

C#7.1 新特性

C#7.1是第一次以次要更新的方式发布C#语言的更新,可以让开发者更快的使用新功能。

默认字面值表达式

默认字面值表达式可以简化默认值表达式。比如之前你可能需要这么写:

Func<string, bool> whereClause = default(Func<string, bool>);

现在你可以省略右边的类型:

Func<string, bool> whereClause = default;

更多关于默认值的增强,可以查看相关文档:
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/statements-expressions-operators/default-value-expressions

推断元组元素名称

此功能是对C#7.0中引入的元组功能的一个小改进。很多时候初始化元组时,右侧用于赋值的变量与元组元素的名称相同:

int count = 5;
string label = "Colors used in the map";
var pair = (count: count, label: label);

在C# 7.1中,元组元素的名称可以从用于初始化元组的变量中推断出来:

int count = 5;
string label = "Colors used in the map";
var pair = (count, label); // element names are "count" and "label"

Async main 异步Main方法

这个功能与Unity内的脚本编程没有太大关系,不过如果你也开发C#应用的话,也可以了解一下

在async main方法种,你可以使用await
之前你需要这么写:

static int Main()
{
    return DoAsyncWork().GetAwaiter().GetResult();
}

现在你可以这么写:

static async Task<int> Main()
{
    // This could also be replaced with the body
    // DoAsyncWork, including its await expressions:
    return await DoAsyncWork();
}

如果Main没有返回值,可以直接返回Task类型:

static async Task Main()
{
    await SomeAsyncMethod();
}

小结

本文讲解了C#7.1的新特性中对Unity编程有影响的新特性,不过这些特性得等到Unity2018.3才可以用哦

洪流学堂公众号回复runtime,获取本系列所有文章。

把今天的内容分享给其他Unity开发者朋友,或许你能帮到他。



《郑洪智的Unity2018课》,倾尽我8年的开发经验,结合最新的Unity2018,带你从入门到精通。


标签:count,C#,元组,Unity,7.1,label
From: https://blog.51cto.com/u_5746184/6234718

相关文章

  • [Unity脚本运行时更新]C#7.2新特性
    洪流学堂微信公众号。本文是该系列《Unity脚本运行时更新带来了什么?》的第7篇。洪流学堂公众号回复runtime,获取本系列所有文章。Unity2017-2018.2中的4.x运行时已经支持到C#6,之前的文章已经介绍完毕。Unity2018.3将支持到C#7.3,今天我们来看看C#7.2新特性能给代码带来什么吧,不过这......
  • Memcache实践总结【转】
    附件为ppt介绍memcached基本问题1、memcached的基本设置 1)启动Memcache的服务器端 #/usr/local/bin/memcached-d-m10-uroot-l192.168.0.200-p12000-c256-P/tmp/memcached.pid-d选项是启动一个守护进程, -m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB, -u......
  • blockimgdiff中方法分析01
    https://blog.csdn.net/Android_2016/article/details/98947824 关于blockimgdiff文件,本篇文档将详细分析初步生成transfer对象和生成diff的字典,并对几个重要方法进行解析.一、传入blockimgdiff的参数分析二、blockimgdiff中方法分析 一、传入blockimgdiff的参数分析......
  • C++中关于默认构造函数(Default Constructor)
    读<<深度探索C++对象模型>>,第二章介绍了默认构造函数,自觉知识点虽基础但是很是被忽略,故作此文记录.关于基础概念不做介绍,先看代码#include<stdio.h>#include<string>classSample{public:intintVal;};classFoo{public:Foo(inta=1000):int......
  • CSS animation (animation-timing-function) 测试脚本
    代码:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=de......
  • RocketMQ(一):基本概念
    RocketMQ官方文档地址:RocketMQ官网文档地址。一、什么是RocketMQRocketMQ是一款分布式、队列模型的消息中间件。二、RocketMQ的基本概念2.1、Topic-主题Topic是RocketMQ中消息传输和存储的顶层容器,用于标识同一类业务逻辑的消息,通过TopicName来做唯一标识和区......
  • vscode-leetcode
    vscode里写leetcode需要的插件xavier-cai.vscode-leetcode-cpp-debug,leetcode.vscode-leetcodeLeetCodeC++Debugger.DeleteTemporaryContents置为falsectrl+shift+p运行LeetCodeC++Debugger:StartDebugging在leetcode-main.cpp进行debug注意不要使用mingw的调试......
  • cf-div.2-868-D
    题目链接:https://codeforces.com/contest/1823/problem/D比赛的时候关键性质已经想到,但没想到怎么正确构造。性质:每次新加一个字母,回文子串的数量最多增加1(因为题目需要不相同的回文子串)。证明:可以用反证法,易证。构造方法:由于k的值很小(只有20),所以对于不再增加(回文子串)的......
  • C# 多线程
    首先要关注电脑配置是否是多核多CPU的。因为一个CPU在同一时刻只能运行一个线程,但是多个CPU在同一时刻就可以运行多个线程。 多线程的优点:1、可以同时完成多个任务;2、可以使程序的响应速度更快;3、可以让占用大量处理时间的任务或当前没有进行处理的任务定期将处理时间让给......
  • CMakeLists---自定义变量-add_definitions()函数
    转载:https://blog.csdn.net/qq_35699473/article/details/115837708引言其实这个函数在安装一些库的时候,它的CMakeLists里面就有这样的函数。典型的就是opencv了。opencv安装时候有一些指令也是针对这个函数的,比如安装命令(随便搜索的):cmake ../opencv-3.4.1-DWITH_GTK_2......