• 一次给自己的测试


    1. 面向对象的特性是?对面向对象的理解?

    封装继承多态。面向对象:对象是事件的抽象,万物皆对象,在C#中面向是对一个类的抽象。

    1. 重写和重载的区别?

    重写:在父子之间重写,方法名称、返回值类型、参数列表必须相同。

    重载:函数名字相同,参数必须不同与返回值无关。

     

    1. 求一组数的最大公约数,最小公倍数,以及质数。

                int m=2;

                int n=6;

                int max;

                int min;

                min = m < n ? m : n;

                max = m > n ? m : n;

                for (int i = max; i >0; i--)

                {

                    if (m % i == 0 && n % i == 0) {

                       Console.WriteLine("最大公约" + i);

                        Console.WriteLine("最小公倍"+min*i);

                        break;

                    }

                    

                }

    static void Main(string[] args)

            {

                for (int i = 2; i < 10; i++)

                {

                    if (st(i))

                    {

                        Console.WriteLine(i);

                    }

                }

            }

            static bool st(int n)

            {

                int m = (int)Math.Sqrt(n);

                for (int i = 2; i <= m; i++)

                {

                    if (n % i == 0 && i != n)

                        return false;

                }

                return true;

            }

        }

     

    1. 值类型和引用类型学过哪些有什么区别?

    值类型:int ,double,bool,char,enum,struct

    引用类型:string 数组 集合arrylist hashtable list dictionary 栈 队列 自定义类 接口 委托

    值类型只有一个内存空间重新赋值会被覆盖 存在栈中

    引用类型每new一次会开辟一个新的内存空间 存在堆中

     

    1. ArrayListListArray有什么区别。

    List:类型是确定的一类,需要指定存储的类型,通过索引来访问,大小不固定。

    Array:数组,只能存储一种数据类型,长度固定。

    ArrayList:链表,类型不固定,值不确定,长度不固定。

     

    1. interface与抽象类的区别?

    接口只能包含方法,属性,和事件的声明。不能有构造函数,也不能有字段,接口也不允许运算符重载。定义中不允许声明成员的修饰符,接口成员都是公有的,可以被多继承。

    抽象类:不能被实例化,只能单继承,可以有抽象方法和非抽象方法,可以有字段属性的定义。

    1. 委托是什么?举一个观察者模式的例子?

    委托:把方法作为一个参数使用。

    猫叫老鼠跑。

    猫是观察者,老鼠是被观察者,当猫叫(方法)的时候,老鼠就跑(事件监听)。

     

    1. 学过的访问修饰符有哪些?具体含义。

    public 和private修饰字段和方法的时候,表示该字段或者方法能不能通过对象去访问,只有public的才可以通过对象访问,

    private(私有的)只能在类模板内部访问。

    protected 保护的,当没有继承的时候,它的作用和private是一样的,当有继承的时候,protected表示可以被子类访问的字段或者方法

     

     

    1. UGUI与NGUI的区别?

    1) NGUI还保留着图集,需要进行图集的维护。而UGUI没有图集的概念,可以充分利用资源,避免重复资源。
       2) UGUI出现了锚点的概念,更方便屏幕自适应。 
       3) NGUI支持图文混排,UGUI暂未发现支持此功能。 
       4) UGUI没有 UIWrap 来循环 scrollview 内容。 
       5) UGUI暂时没有Tween组件。

    1. 自己定义一个int类型一维数组进行冒泡排序,然后反转他的排序。

     

     

    static void Main(string[] args)

            {

                int[] data = {5,2,3,6,10,60 };

                for (int i = 0; i < data.Length; i++)

                {

                    for (int j = i+1; j < data.Length-1; j++)

                    {

                        if (data[i] > data[j]) {

                            int d = data[i];

                            data[i] = data[j];

                            data[j] = d;

                        }

                    }

                }

                for (int i = 0; i < data.Length; i++)

                {

                    Console.WriteLine(data[i]);

                }

            }

     

    反转:把if(data[i]<data[j])

     

     

     

    1. 对象池的原理是什么?用代码表现子弹的生成与销毁。

    对象池:把创建出的物体放进一个池子里,下次用的时候直接取,如果不够再重新创建。只是控制物体的激活与失活,而不是重复的销毁与创建,节省系统资源。

     

     

     

     

    1. 自己定义一个三列两行的Excel,解析在unity中进行输出

     

    1. 摆放十个cube,通过方法获取他们的坐标点后进行删除,然后用胶囊模拟人物,当人物靠近这十个cube中心点的时全部生成

     

     

     

    1. 实现一个Button按钮的颜色变化,以及动画效果(放大缩小)
    2. 保存和读取数据的类是什么,现在有一个人物,如何保存该人物的姓名和等级?代码实现

            PlayerPrefs.SetString("name", "小明");

            PlayerPrefs.SetInt("degree", 100);

            PlayerPrefs.GetString("name");

            PlayerPrefs.GetInt("degree");

            PlayerPrefs.DeleteKey("name");

            PlayerPrefs.DeleteAll();

    保存和应用删除。

     

    1. 设计场景一个Plane,里面有障碍物,利用射线检测,点击地面哪里让小球向该位置运动,点击障碍物小球不动

     

     

    1. 16题的利用射线检测改为利用寻路系统

     

     

    1. 实现一个消消乐的单消功能(10*10矩阵,点一个消除一个生成一个)

     

    1. 实现UI播放视频(通过按钮实现播放循环和暂停)

     

     

     

    1. 利用文件流,读取一个视频,进行复制

     

     

    1. 用三种方式实现cube的移动

    void Update () {

    float h=Input.GetAxis("Horizontal");//返回-1到1的值

    float v = Input.GetAxis("Vertical");//返回-1到1的值

    transform.Translate(0,0, v*Time.deltaTime);

    transform.Rotate(new Vector3(0,h*Time.deltaTime*30,0) );

    transform.Translate(new Vector3(0, j * Time.deltaTime*10, 0));

    Rigidbody.Addforce(5*Vector3.forward);

    }

    }

    position移动的问题

    transform.position += transform.forward*Time.deltaTime;

    1. 学过几种获取面板物体的方法,几种生成物体的方法,列举出来
    2. GameObject.Find();
    3. Tranform.Find();
    4. 拖拽

    生成:

    1. GameObject.Instantiate()
    2. GameObject.CreatePrimitive()
    3. Resources.Load(“物体名称”)

     

    1. 利用UGUI遮罩与相机结合实现小地图(圆形小地图)
    2. 开启一个应用的进程,开启一个线程

    Process.Start("calc");

            static void Text()

            {

                Console.WriteLine("线程开启");

            }

            static void Main(string[] args)

            {

                Thread t = new Thread(Text);

                t.Start();

                Console.WriteLine("main");

            }

    1. 学过哪些特性,举例

    [Obsolete()]:提示此方法已经过时了,参数如果有true就会报错此方法.

    [Conditional(“方法名字”)]:注释掉该方法的调用.

    [DebuggerStepThrough]//对此方法调试操作进行跳过,表示该方法没有任何无错误,可以直接跳过

    [CallerLineNumber]int fileLinename = 0, [CallerMemberName]string methodName = "")

    调用文件所在的路径,调用该方法的所在行数,调用该方法所在方法的名字 统称:调用者信息特性

     

     

    1. 思维拓展:自己设计一个RPG游戏,把RPG的设计思想用思维导图画出来

     

     

     

     

     

  • 相关阅读:
    CSV文件读取类
    一个参数处理类
    记一个mysql的问题
    php问题小记
    wsl开nginx和php-fpm遇到的几个小问题
    debian apache2.4 virtual host 使用
    debian 安装 apache2和php7
    杂记整理三:php、thinkphp和sql
    杂记整理二:linux与程序安装
    杂记整理一:javascript, jQuery 以及 ECMAscript
  • 原文地址:https://www.cnblogs.com/shuanglu/p/8407273.html
Copyright © 2020-2023  润新知