备忘,记忆力越来越差了,必需把这种琐碎的东西记下来,以防1年后想再用完全没头绪。

之前试过用C#6语法,但是怎么配置操作的完全没印象了。

首先去这下载扩展

https://bitbucket.org/alexzzzz/unity-c-5.0-and-6.0-integration/src

左边Donwload选项,写本文时已经支持

C# 7.2 support for Net 4.6 in Unity 2017.1+

但是我目前用的5.6.5,所以下的

CSharp70Support 2.0.6 (for Unity 5.6).zip

用法,新建工程,CSharp7

把解压文件CSharp70Support放到Assets同级目录

管理员权限运行ngen install.cmd

CSharp70Support.unitypackage文件在工程中导入,生成CSharp vNext Support

写入测试代码,代码来源

https://www.cnblogs.com/newnj/p/6530394.html

using UnityEngine;
using System.Collections; public class CS7Test : MonoBehaviour
{
public string TestString { get; set; } = "Hello World"; public class Person
{
public int age;
public string name; public Person(int age, string name)
{
this.age = age;
this.name = name;
}
}; public class Male : Person
{
public Male(int age, string name) : base(age, name)
{
this.age = age;
this.name = name;
}
}; public class Female : Person
{
public Female(int age, string name) : base(age, name)
{
this.age = age;
this.name = name;
}
}; void Start()
{
Debug.Log(TestString); test1();
test2();
test3();
test4();
test5(); } void test1()
{
var str = "7";
// if(int.TryParse(str, out int number))
if(int.TryParse(str, out var number))
{
Debug.Log(number);
}
} void test2()
{
Person p1 = new Male(5, "John");
Person p2 = new Female(10, "Mary"); Person cp = p1;
//Person cp = p2; // switch支持非常量类型
switch (cp)
{
case Male m:
Debug.Log("Male:" + m.name);
break;
case Female f:
Debug.Log("Female:" + f.name);
break;
default:
break;
}
} public class GlobalData
{
private static int UserCount = 0; public static int GetCount()
{
return UserCount;
} public static ref int GetCountNew()
{
return ref UserCount;
}
} void test3()
{
var count = GlobalData.GetCount();
++count; Debug.Log(GlobalData.GetCount());//0 ref int countNew = ref GlobalData.GetCountNew();
++countNew; Debug.Log(GlobalData.GetCount());//1
} //本地函数
void test4()
{
Debug.Log("test4=========="); //本地函数
void Writer(IEnumerable objs)
{
foreach(var item in objs)
{
switch(item)
{
case null:break;
case IEnumerable enumerable:
Writer(enumerable);
break;
default:
Debug.Log(item);
break;
}
}
}
Writer(new object[]
{
1,2,new[] {"3", "4"}
}
);
} void test5()
{
long id = 1234_5678_9012_3456;
Debug.Log(id);//1234567890123456
}   void Update()
  {   }
}

  

其他版本配置应该类似,可以看看作者主页自带的说明,但是好像只有最新版本才有说明,其他版本比如C#6可能文件都不同,要自己测试,随机应变。

顺便一提,编译速度非常慢,感觉除了最后一个显示数字可以加下划线对我有用外,其他功能完全用不上,

这种看起来很方便的语法糖,就像C++的STL一样,看起来方便好用,节省时间,

实际上在不了解语法的外人看来,要花更多的时间去学习,才能看懂写的是什么鬼,不容易记住。

而且长期不用,下次用时还要重新复习才能想得起来用法,完全不适合我这种人使用。

在Unity5.6.5f1中使用C#7语法的更多相关文章

  1. 【Unity】近期整理Unity4.x 项目升级Unity5.0 过程中出现的各种常见问题,与大家共享。

    近期整理Unity4.x 项目升级Unity5.0 过程中出现的各种常见问题,与大家共享. 1:Unity4.x 项目中3D模型其材质丢失,成为"白模"?       解决方式:手 ...

  2. C++反汇编第六讲,认识C++中的Try catch语法,以及在反汇编中还原

    C++反汇编第六讲,认识C++中的Try catch语法,以及在反汇编中还原 我们以前讲SEH异常处理的时候已经说过了,C++中的Try catch语法只不过是对SEH做了一个封装. 如果不懂SEH异 ...

  3. Markdown中Latex 数学公式基本语法

    原文地址:http://blog.csdn.net/u014630987/article/details/70156489 Markdown中Latex 数学公式基本语法 公式排版 分为两种排版: - ...

  4. CI框架 -- 在视图文件中使用 PHP 替代语法

    如果你不使用 CodeIgniter 的 模板引擎, 那么你就只能在视图文件中使用纯 PHP 语法了.为了精简视图文件, 使其更可读,建议你在写控制结构或 echo 语句时使用 PHP 的替代语法. ...

  5. Python3中的yield from语法

    Python3中的yield from语法 by Kay Zheng Tags: python, 协程, generator 30 March 2014 2016-2-23 更新 這篇文章是兩年前寫的 ...

  6. Python中的相对导入语法

    Python中支持相对导入语法,即可以相对于某一个package进行导入,具体语法如下: # 导入"./dir2/spam.py", .表示当前目录 from .dir2 impo ...

  7. Oracle中有关日期的语法

    Oracle中有关日期的语法 Oracle提供了丰富的日期函数.利用日期函数可以灵活的对日期进行运算. to_date()函数——将字符串转换为日期型 to_date()函数用于将字符串转换为日期.被 ...

  8. 如何在Visual Studio 2017中使用C# 7+语法 构建NetCore应用框架之实战篇(二):BitAdminCore框架定位及架构 构建NetCore应用框架之实战篇系列 构建NetCore应用框架之实战篇(一):什么是框架,如何设计一个框架 NetCore入门篇:(十二)在IIS中部署Net Core程序

    如何在Visual Studio 2017中使用C# 7+语法   前言 之前不知看过哪位前辈的博文有点印象C# 7控制台开始支持执行异步方法,然后闲来无事,搞着,搞着没搞出来,然后就写了这篇博文,不 ...

  9. oracle 中SQL 语句开发语法 SELECT INTO含义

    oracle 中SQL 语句开发语法 SELECT INTO含义 在ORACLE中SELECT INTO是如何使用的,什么意思?和SQL SERVER的不一样?   和sqlserver的不一样sql ...

随机推荐

  1. 根据url路径获取图片并显示到ListView中

    项目开发中我们需要从网络获取图片显示到控件中,很多开源框架如Picasso可以实现图片下载和缓存功能.这里介绍的是一种简易的网络图片获取方式并把它显示到ListView中. 本案例实现的效果如下: 项 ...

  2. spring cloud gateway - RequestRateLimiter

    1. Official website 5.7 RequestRateLimiter GatewayFilter Factory The RequestRateLimiter GatewayFilte ...

  3. kubernetes学习笔记之十二:资源指标API及自定义指标API

    第一章.前言 以前是用heapster来收集资源指标才能看,现在heapster要废弃了从1.8以后引入了资源api指标监视 资源指标:metrics-server(核心指标) 自定义指标:prome ...

  4. VS 代码片段集

    片段1:用于线程执行代码,耗时操作时加载Loging; <?xml version="1.0" encoding="utf-8"?> <Cod ...

  5. 360极速浏览器Onetab插件存储位置

    OneTab 是一款 Chrome / Firefox 扩展,用来让那些打开了但是没有空看的标签页保存到后台列表,从而节省宝「贵」的内存资源,根据 Chrome 的内存消耗情况下来,可以达到 95% ...

  6. 38.Spring-spring和hibernate整合.md

    目录 1.定义各种类对象 2.创建Hibernate配置文件 3.配置applicationContext.xml 4.注意事项 1.定义各种类对象 package per.liyue.sh.demo ...

  7. 楚乔传 Princess Agents

    英文片名是:Princess Agents 公主特工,哈哈,女主角是公主...所有隐藏的线索都暴露了...这么搞笑呢.

  8. python学习Day2 python 、pycharm安装及环境变量配置

    复习 进制转换:二进制&十六进制转换(从左往右1248机制,每四位二进制对应一位16进制) 二进制&十进制转换   2n-1幂次方相加 十进制到二进制转化  将十进制除以2,把余数记下 ...

  9. springboot寻找property的顺序

    Spring Boot uses a very particular PropertySource order that is designed to allow sensible overridin ...

  10. 24. Swap Nodes in Pairs 链表每2个点翻转一次

    [抄题]: Given a linked list, swap every two adjacent nodes and return its head. Example: Given 1->2 ...