【Unityc#专题篇】之c#进阶篇

这篇具有很好参考价值的文章主要介绍了【Unityc#专题篇】之c#进阶篇。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【Unityc#专题篇】之c#进阶篇


👨‍💻个人主页:@元宇宙-秩沅

👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 秩沅 原创

👨‍💻 收录于专栏unity之c#专题篇

【Unityc#专题篇】之c#进阶篇


⭐🅰️Unity之c#专题篇——【进阶章】⭐

⭐🅰️系统路线点击跳转⭐


⭐[【Unityc#专题篇】之c#进阶篇】

⭐【Unityc#专题篇】之c#核心篇】

⭐【Unityc#专题篇】之c#基础篇】

⭐【Unity-c#专题篇】之c#入门篇】

【Unityc#专题篇】—进阶章题单实践练习

⭐【Unityc#专题篇】—基础章题单实践练习

【Unityc#专题篇】—核心章题单实践练习


🎶前言


🅰️ 进阶之路


🎶(A) 数组的基类—Array类


集合 和 数组 的 区别 : 数组 的长度是固定的。 集合 的长度是可变的。 数组 中存储的是同一类型的元素,可以存储基本数据类型值。 集合 存储的都是对象。 而且对象的类型可以不一致。

  • 1.概念

Array 类是 C# 中所有数组的基类,它是在 System 命名空间中定义。Array 类提供了各种用于数组的属性和方法,可看作扩充了功能的数组(但不等同数组),可以使用Array类的属性来对数组进行各种操作。

  • 2.方法
    【Unityc#专题篇】之c#进阶篇

  • 3.属性:
    【Unityc#专题篇】之c#进阶篇

  • 4.Array.Reverse()-需要反转字符串时

 String B ="12345";
 char [] A = B.TocharArray();
 Array.Reverse(A);
 String B = new string(A);

🎶(B)简单数据集合——容器ArrayList


  • ArrayList,Array,LinkedList优缺点

  • 思维导图
    【Unityc#专题篇】之c#进阶篇

  • API

初始化容量: ArrayList xx = new ArrayList(number);
补充: arraryList 是可以通过下标来获取对象的
【Unityc#专题篇】之c#进阶篇


🎶(C)简单数据集合——容器Stack


【Unityc#专题篇】之c#进阶篇


🎶(D)简单数据集合——容器Queue类


【Unityc#专题篇】之c#进阶篇

  • 所以什么时候用到栈和队列呢?
    首先在满足 先进后出或者 先进先出的存取规则之后
    也考虑到 只 存取 对象的 不需要修改和删除对象的操作
  • 这个时候栈和队列才适合

🎶(E)简单数据集合——容器Hashtable类(散列表)


【Unityc#专题篇】之c#进阶篇

【Unityc#专题篇】之c#进阶篇


🎶(F)简单数据集合小结


  • 都在相同的命名空间:using System.Collections;
  • 本质上都是Object的数组,存在拆箱装箱的缺点

🎶(G)泛型


【Unityc#专题篇】之c#进阶篇

  • 三大类
    【Unityc#专题篇】之c#进阶篇
    【Unityc#专题篇】之c#进阶篇
  • 好处

    1.能够使得不同对象执行同一逻辑操作——(也是什么时候用泛型的前提)
    2.若是泛型方法,直接用泛型当作参数传递了,()里面就不用写了
    3.避免了装箱拆箱的操作

🎶(H)泛型约束


【Unityc#专题篇】之c#进阶篇
泛型约束应用:

  • 单例模式的优缺点

    1优点: 只允许创建一个对象,因此节省内存,加快对象访问速度,因此对象适合需要被公用的场合使用,如多个模块使用同一个数据源连接对象等等
    2缺点: 就是不适用于变化的对象,如果同一类型的对象总是要在不同的用例场景发生变化,单例就会引起数据的错误,不能保存彼此的状态

用单例模式,就是在适用其优点的状态下使用


🎶(II)常用泛型数据结构类——List泛型类


【Unityc#专题篇】之c#进阶篇
【Unityc#专题篇】之c#进阶篇


🎶(L)常用泛型数据结构类——Dictionary泛型类


【Unityc#专题篇】之c#进阶篇
【Unityc#专题篇】之c#进阶篇

  • hashtable的遍历 和 Dictionary 遍历API的区别对比
    +【Unityc#专题篇】之c#进阶篇

🎶(J)数据结构存储方式——顺序存储和链式存储


【Unityc#专题篇】之c#进阶篇
【Unityc#专题篇】之c#进阶篇


🎶(K)常用泛型数据结构类——LinkedList泛型类


【Unityc#专题篇】之c#进阶篇
【Unityc#专题篇】之c#进阶篇


🎶(L)常用泛型数据结构类——泛型栈和队列


  • 本质API和Stack类Queue类一样,加上了泛型
  • 并且前者再system.collection命名空间里
  • 后者在system.collection,Generic里

🎶(M)常用数据容器的不同应用情况


总结数组,list,Dectionary,Stack,Queue,LinkedList等存储容器。我们怎么来使用

  • 数组:简单的数据类型存储的时候,或者只需要查改数据的时候

  • List:它是ArraryList的泛型升级,适合一切对象的存储,适合查改的情况下使用

  • LinkeList:它是泛型双向链表,适合频繁增删的数据对象的情况下使用
    【Unityc#专题篇】之c#进阶篇

  • Dectionary:它是Hashtable的泛型升级,适合键值对象的存储
    【Unityc#专题篇】之c#进阶篇

  • Stack:适合先进后出的情况下使用

  • Queue:适合先进先出的情况下使用
    【Unityc#专题篇】之c#进阶篇


🎶(N)委托和事件——委托


【Unityc#专题篇】之c#进阶篇

【Unityc#专题篇】之c#进阶篇

  • 相当于老板把活儿都安排好了,分给谁做,谁做多个,谁做少的
  • 某个对象要执行别人安排的一系列方法的时候可以选择用委托

🎶(O)委托和事件——事件


【Unityc#专题篇】之c#进阶篇


  •  public Action  WarmDoEvent1;    //无返回值无参
     public Action<int ,int> WarmDoEvent2;  //无返回值有两个int的参数
     public Func<int> WarmDoEvent3;        //有int类型的返回值,无参
     public Func<string, int> WarmDoEvent4;   //有int类型的返回值,有一个string的参数
     ------------------------------------------------------------------
     +
    

委托和事件的原则:
1.委托什么类型有参有无返回值,它传入的函数和它是一致的
2.了解系统自带四个委托类型的实质是什么
3.变成事件的委托,无法在自身对象外面被置空(赋值)或被调用,但是+= 和 -+ 可以
4.而没有变事件的委托就不安全了 ,它就可以在外面被调用,有置空的风险
5.所以事件存在,让委托更安全了
6.用委托的时候能用事件就更好


🎶(P)委托和事件——匿名函数


【Unityc#专题篇】之c#进阶篇
【Unityc#专题篇】之c#进阶篇

【Unityc#专题篇】之c#进阶篇

  • 相当于delegate是函数名 ,()是放参数列表的 ,{代码逻辑} 是方法体

🎶(Q)委托和事件——Lambda表达式


![

](https://img-blog.csdnimg.cn/6f2d17f530854c7a85f0521529246276.png)

【Unityc#专题篇】之c#进阶篇

【Unityc#专题篇】之c#进阶篇

  • 闭包的条件
    【Unityc#专题篇】之c#进阶篇
  • 闭包的特点
    【Unityc#专题篇】之c#进阶篇
  • 父类函数最终值情况的消灭
    【Unityc#专题篇】之c#进阶篇

🎶(R)委托和事件——补充(返回委托数组)


  • 因为我们使用委托添加有返回值的函数时,当调用委托后,它并不会获取到每一个有返回值函数的返回值,它只是执行所有存在委托中的函数

如果想要获取到每一个函数执行后的返回值

  • 知识点:委托容器中存在方法 GetInvocationList() 可以返回一个委托数组

  • 当有返回值的容器存储多个函数时,想要一一得到其返回值的情况

class Program
    {
        //当有返回值的容器存储多个函数时,想要一一得到其返回值的情况
       static public Func<int >  Print()
        {
            Func<int> action = null;
            for (int i = 1; i <= 10; i++)
            {
                int index = i;
                action += () => {
                Console.WriteLine("第{0}个函数",index);
                    return index*100 ;
                };
            }
            return  action;           
        }
        static void Main(string[] args)
        {
            Func<int> text = Print();
            text();
            // Print()();//一步到位的写法
            foreach (Func<int> item in text.GetInvocationList() )
            {
                Console.WriteLine(item());
            }
        }
    }

🎶(S)委托和事件——List排序相关


【Unityc#专题篇】之c#进阶篇


🎶(T)协变和逆变


【Unityc#专题篇】之c#进阶篇【Unityc#专题篇】之c#进阶篇


🎶(U)多线程


【Unityc#专题篇】之c#进阶篇

【Unityc#专题篇】之c#进阶篇
【Unityc#专题篇】之c#进阶篇


🎶(V)预处理指令


【Unityc#专题篇】之c#进阶篇

【Unityc#专题篇】之c#进阶篇

🎶(W)反射


——(前面用不到,只是用来理解unity)

  • 编译器的作用
  • 源语言程序员
  • 目标语言程序
    【Unityc#专题篇】之c#进阶篇
    【Unityc#专题篇】之c#进阶篇
    【Unityc#专题篇】之c#进阶篇

  • 一.Type类
    【Unityc#专题篇】之c#进阶篇
    【Unityc#专题篇】之c#进阶篇
    【Unityc#专题篇】之c#进阶篇
    【Unityc#专题篇】之c#进阶篇

  • 二.Assembly类

【Unityc#专题篇】之c#进阶篇


  • 三.Activator类
    【Unityc#专题篇】之c#进阶篇

🎶(X)特性


【Unityc#专题篇】之c#进阶篇


常见的特性如下:

  • 限制加持范围的特性
    【Unityc#专题篇】之c#进阶篇
  • 标记过时提示的特性
    【Unityc#专题篇】之c#进阶篇
  • 提示调用者信息的特性

【Unityc#专题篇】之c#进阶篇

  • 预处理条件编译的特性
    【Unityc#专题篇】之c#进阶篇

  • 外部调用DLL包的特性
    【Unityc#专题篇】之c#进阶篇

  • 特性的本质:

  • 特性的语法

  • 特性的使用
    【Unityc#专题篇】之c#进阶篇


🎶(Y)迭代器


【Unityc#专题篇】之c#进阶篇


🎶(Y)特殊语法总结


【Unityc#专题篇】之c#进阶篇
【Unityc#专题篇】之c#进阶篇
【Unityc#专题篇】之c#进阶篇
【Unityc#专题篇】之c#进阶篇


⭐相关文章⭐


⭐【Unityc#专题篇】之c#进阶篇】

⭐【Unityc#专题篇】之c#核心篇】

⭐【Unityc#专题篇】之c#基础篇】

⭐【Unity-c#专题篇】之c#入门篇】

【Unityc#专题篇】—进阶章题单实践练习

⭐【Unityc#专题篇】—基础章题单实践练习

【Unityc#专题篇】—核心章题单实践练习

⭐本站最全-unity常用API大全(万字详解),不信你不收藏



你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!文章来源地址https://www.toymoban.com/news/detail-488831.html

到了这里,关于【Unityc#专题篇】之c#进阶篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【并发专题】单例模式的线程安全(进阶理解篇)

    最近学习了JVM之后,总感觉知识掌握不够深,所以想通过分析经典的【懒汉式单例】来加深一下理解。(主要是【静态内部类】实现单例的方式)。 如果小白想理解单例的话,也能看我这篇文章。我也通过了【前置知识】跟【普通懒汉式】、【双检锁懒汉】、【静态内部类】

    2024年02月14日
    浏览(40)
  • VM图像类型转换专题(C#)

    VisionMaster(后简称VM)作为一款功能强大的工业图形图像处理软件,可对工业中遇到的各种图像进行处理,同时还有功能强大的算子以及很全面的例程,作为图像处理的主程序是非常不错的。当前VM提供了VM算法平台、VM SDK开发、算子SDK开发和算子模块开发四种开发模式兼顾各

    2024年02月16日
    浏览(39)
  • 【Unity-c#专题篇】之c#入门篇

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 : unity之c#专题篇 ⭐[【Unityc#专题篇】之c#进阶篇】 ⭐【Unityc#专题篇】之c#核心篇】 ⭐【Unityc#专题篇】之c#基础篇】 ⭐【Unity-c#专题篇】之

    2024年01月21日
    浏览(29)
  • Unity之c#专题篇——【不动如山核心章】

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 : unity之c#专题篇 ⭐[【Unityc#专题篇】之c#进阶篇】 ⭐【Unityc#专题篇】之c#核心篇】 ⭐【Unityc#专题篇】之c#基础篇】 ⭐【Unity-c#专题篇】之

    2023年04月23日
    浏览(34)
  • 【Unity之c#专题篇】—核心章题单实践

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 : unityc#专题篇习题 核心章知识点详解入口 🅰️ 题单来自:B站唐老狮 实践经验 : 1.类是对象,清楚类的本质 2.对象和对象之间可作为参

    2024年02月05日
    浏览(36)
  • PerfView专题 (第十五篇): 如何洞察 C# 中的慢速方法

    在 dump 分析旅程中,经常会遇到很多朋友反馈一类问题,比如: 方法平时都执行的特别快,但有时候会特别慢,怎么排查? 我的方法第一次执行特别慢,能看到慢在哪里吗? 相信有朋友肯定说,加些日志不就好了,大方向肯定是没问题的,但加日志的颗粒度会比较粗而且侵

    2024年02月16日
    浏览(55)
  • UnityC#脚本的热更新原理

    想要了解Unity的热更原理,必须要先了解Unity脚本的编译和跨平台机制。通常游戏的跨平台主要指安卓和IOS端。Unity的官方脚本语言是C#,但也有不少项目会采用C# + Lua语言的方式进行开发。它们主要有三种跨平台的形式:JIT、AOT、脚本语言。 Unity的C#代码在代码被打包时会被编

    2024年02月08日
    浏览(35)
  • PerfView专题 (第十四篇): 洞察那些 C# 代码中的短命线程

    这篇文章源自于分析一些疑难dump的思考而产生的灵感,在dump分析中经常要寻找的一个答案就是如何找到死亡线程的生前都做了一些什么?参考如下输出: 前面的 XXXX 代表线程已死亡,那谁能告诉我 ID=22 的线程生前执行了什么代码呢?其实去年我写了一篇如何用 WinDbg 去寻找

    2024年02月17日
    浏览(61)
  • 【Unity之c#专题篇】——【不动如山核心章—掌握核心只需这一篇】

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 : unity之c#专题篇 ⭐[【Unityc#专题篇】之c#进阶篇】 ⭐【Unityc#专题篇】之c#核心篇】 ⭐【Unityc#专题篇】之c#基础篇】 ⭐【Unity-c#专题篇】之

    2023年04月24日
    浏览(39)
  • UnityC#实现中文汉字转拼音-使用微软CHSPinYinConv库

    前段时间使用NPinyin.dll实现中文转拼音获取首字母,近期版本迭代发现不能用了,感觉不好使,Encoding编码不知道出现啥问题,啥错误都不报,提示也没有,直接执行Encoding code=Encoding.GetEncoding(“gb2312”);这句代码后,后面的语句全部没执行了。找不到原因, 还以为是某些库文

    2024年02月16日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包