当前位置: 首页 > news >正文

项目商业网站建设方案棋牌类网站设计建设

项目商业网站建设方案,棋牌类网站设计建设,买表的网站,泰安网站建设收益文章目录 一、Using 声明二、静态本地函数三、Null 合并赋值四、解构函数 Deconstruct五、模式匹配增强功能 ​ 注意#xff1a;在此仅提及 Unity 开发中会用到的一些功能和特性#xff0c;对于不适合在 Unity 中使用的内容会忽略。 ​ C# 8 对应 Unity 版本#xff1a; Un… 文章目录 一、Using 声明二、静态本地函数三、Null 合并赋值四、解构函数 Deconstruct五、模式匹配增强功能 ​ 注意在此仅提及 Unity 开发中会用到的一些功能和特性对于不适合在 Unity 中使用的内容会忽略。 ​ C# 8 对应 Unity 版本 Unity 2020.3 —— C# 8 ​ 但是部分新内容还不在该版本 Unity 中被支持下面筛选了一些比较实用的内容。 ​ C# 8 新增功能和语法 Using 声明静态本地函数Null 合并赋值解构函数 Deconstruct模式匹配增强功能 一、Using 声明 ​ Using 声明是对 using 语法的简写当函数执行完毕时会调用对象的 Dispose 方法来释放对象。 public class Lesson10 : MonoBehaviour {void Start() {using StreamWriter s2 new StreamWriter(文件路径);// 对该对象进行逻辑操作s2.Write(5);s2.Flush();s2.Close();// 利用这个写法 就会在上层语句块执行结束时释放该对象} }​ 注意在使用 using 语法时声明的对象必须继承 System.IDisposable 接口 public class TestUsing : IDisposable {public void Dispose() { } }public class Lesson10 : MonoBehaviour {void Start() {using TestUsing t new TestUsing();} }​ 因为必须具备 Dispose 方法所以当声明没有继承该接口的对象时会报错. 二、静态本地函数 ​ 静态本地函数就是在本地函数前方加入静态关键字。 ​ 作用让本地函数不能够使用访问封闭范围内也就是上层方法中的任何变量让本地函数只能处理逻辑避免让它通过直接改变上层变量来处理逻辑造成逻辑混乱。 public int TestTst(int i) {bool b false;i 10;Calc(ref i, ref b); // 执行静态本地函数return i;// 静态本地函数static void Calc(ref int i, ref bool b) {i 10;b true;} } 三、Null 合并赋值 ​ 空合并赋值是 C# 8.0 新加的一个运算符 ??类似复合运算符 ​ 左边值 ?? 右边值 ​ 当左侧为空时才会把右侧值赋值给变量。 ​ 举例 string str null; str ?? 4565; print(str); // 4565// 注意由于左侧为空才会讲右侧赋值给变量所以不为空的变量不会改变 str ?? 1111; print(str); // 4565四、解构函数 Deconstruct ​ 我们可以在自定义类当中声明解构函数这样我们可以将该自定义类对象利用元组的写法对其进行变量的获取。 ​ 语法在类的内部声明函数 ​ public void Deconstruct(out 变量类型 变量名, out 变量类型 变量名.....) ​ 特点一个类中可以有多个 Deconstruct但是参数数量不能相同。 public class Person {public string name;public bool sex;public string number;public string email;// 三个解构函数public void Deconstruct(out string n, out bool sex) {n name;sex this.sex;}public void Deconstruct(out string n, out bool sex, out string number) {n name;sex this.sex;number this.number;}public void Deconstruct(out string n, out bool sex, out string number, out string email) {n name;sex this.sex;number this.number;email this.email;} }public class Lesson10 : MonoBehaviour {void Start() {// 初始化并赋值Person p new Person();p.name xxx;p.sex false;p.number 123123123123;p.email xxxxxxxx163.com;// 对该对象利用元组将其具体的变量值解构出来// 相当于把不同的成员变量拆分到不同的临时变量中(string name, bool sex) p;print(name); // xxxprint(sex); // falsestring str3;(_, _, str3) p;print(str3); // 123123123123} }​ 解构函数也可以简写成 public void Deconstruct(out string n, out bool sex) (n, sex) (this.name, this.sex);public void Deconstruct(out string n, out bool sex, out string number) (n, sex, number) (this.name, this.sex, this.number);public void Deconstruct(out string n, out bool sex, out string number, out string email) (n, sex, number, email) (this.name, this.sex, this.number, this.email);五、模式匹配增强功能 ​ C# 7 中模式匹配已经有常量模式、类型模式和 var 模式三种在 C# 8 中新加入了如下几种模式 switch 表达式属性模式元组模式位置模式 一switch 表达式 ​ 对于如下枚举 public enum PosType {Top_Left,Top_Right,Bottom_Left,Bottom_Right, }​ 当需要写一个函数获取对应位置时使用 switch 写法如下 public Vector2 GetPos(PosType type) {switch (type) {case PosType.Top_Left:return new Vector2(0, 0);case PosType.Top_Right:return new Vector2(1, 0);case PosType.Bottom_Left:return new Vector2(0, 1);case PosType.Bottom_Right:return new Vector2(1, 1);default:return new Vector2(0, 0);} }​ switch 表达式是对有返回值的 switch 语句的缩写 用 表达式符号代替 case: 组合用 _ 弃元符号代替 default: ​ 它的使用限制主要是用于 switch 语句当中只有一句代码用于返回值时使用 public Vector2 GetPos(PosType type) type switch {PosType.Top_Left new Vector2(0, 0),PosType.Top_Right new Vector2(1, 0),PosType.Bottom_Left new Vector2(0, 1),PosType.Bottom_Right new Vector2(1, 1),_ new Vector2(0, 0) };二属性模式 ​ 即在常量模式的基础上判断对象上各属性。 ​ 用法变量 is {属性:值, 属性:值}。 ​ 对于如下折扣类 public class DiscountInfo {public string discount;public bool isDiscount;public DiscountInfo(string discount, bool isDiscount) {this.discount discount;this.isDiscount isDiscount;}public void Deconstruct(out string dis, out bool isDis) {dis this.discount;isDis this.isDiscount;} }​ 如果需要判断其具体信息需要获取其两个成员变量的值进行判断 DiscountInfo info new DiscountInfo(5折, true);if( info.discount 6折 info.isDiscount)print(信息相同);​ 使用属性模式可以快捷判断 if (info is { discount: 6折, isDiscount: true })print(信息相同);​ 结合 switch 表达式 public float GetMoney(DiscountInfo info, float money) info switch {// 属性模式结合 switch 表达式判断 n 个条件是否满足{ discount: 5折, isDiscount: true } money * .5f,{ discount: 6折, isDiscount: true } money * .6f,{ discount: 7折, isDiscount: true } money * .7f,_ money };三元组模式 ​ 元组模式可以不需要声明数据结构类可以直接利用元组进行判断 int ii 10; bool bb true;if ((ii, bb) is (11, true)) {print(元组的值相同); }public float GetMoney(string discount, bool isDiscount, float money) (discount, isDiscount) switch {(5折, true) money * .5f,(6折, true) money * .6f,(7折, true) money * .7f,_ money };四位置模式 ​ 如果自定义类中实现了解构函数那么可以直接用对应类对象与元组进行 is 判断 if (info is (5折, true)) {print(位置模式 满足条件); }​ 同时还可以配合 when 关键字进行逻辑处理 public float GetMoney2(DiscountInfo info, float money) info switch {(5折, true) when money 100 money * .5f,(6折, true) money * .6f,(7折, true) money * .7f,_ money };
http://www.dnsts.com.cn/news/223055.html

相关文章:

  • 弹幕网站如何做淘特app推广代理
  • 抚州市建设局网站合肥制作网站公司
  • 沈阳网站建设 熊掌号网站开发需要什么专业学生
  • 南京的网站制作公司天元建设集团有限公司工程
  • wordpress投稿分成广东百度seo
  • 网站添加内容做网站去哪里找
  • 网站 开发 语言企业建设营销型网站步骤
  • 化妆品品牌网站如何做汕头免费建站公司
  • 网站建设业务前景云溪网络建站宝盒
  • 珠海建设企业网站的公司去百度建网站
  • 世界网站制作宠物网站建设策划报告
  • 如何发布自己的网站淄博建设银行网站
  • 住房和城乡建设部网站城市稽查vue开发视频网站
  • 黄金路网站建设公司西安做网站公司玖佰网络
  • dw怎么做网站注册登入页面内蒙古中汇建设有限公司网站
  • 做租车行网站有没有学做衣服的网站
  • 微信网站收钱吗传奇手游发布网址传奇
  • 浏览器怎么打开网站服务器seo查询排名软件
  • 用做网站使用的图片关注清远发布
  • asp 手机网站安徽全网优化
  • 做册子模板素材有哪些网站优普道建筑网校
  • 网站建设培训价格小学学校网站建设情况资料
  • 石家庄手机模板建站wordpress 编辑器文字大小
  • 百度网站提交收录入口重庆丙图网络科技有限公司
  • 杭州市建设工程公示网站企查查企业信息查询在线
  • 做捐款网站原画培训机构排行榜
  • 濮阳的网站建设东莞市官网网站建设品牌
  • 深圳建设很行住房公积金网站安阳网站制作 网络服务
  • dede织梦php文章图片网站源码 完整后台 带在线音乐搜索热词排名
  • 新加坡网站开发公司网站建设销售工作内容