Minigame Learning for Day 2

来源:互联网 发布:淘宝商品上架时间查询 编辑:程序博客网 时间:2024/05/19 00:42

C# 委托

用其它语言处理Windows事件,要在Select语句中写一大堆Case,用委托就方便多了,响应过程单独写好,不同的事件只需要把响应函数名作为委托的参数调用就可以了。在方法中事件名和响应过程通过委托对应起来,很容易理解,就是委托的定义和实例化要多加注意,什么时候出现的是参数,什么时候出现的是函数名。

在方法、委托、函数这三层结构中,方法中用的是参数,这些参数可以看作是委托的参数,表示一个方法中可以用多个委托,也就是一个事件对应多个响应。委托的定义用的是参数,表示一个委托代表一组具有相同特性的函数,委托的实例用的是函数名,一个实例就是一个响应。

Static 静态方法

问题:为什么类中的静态方法里面不可以调用该类里的非静态方法?

解答:由于静态方法可以不通过对象进行调用,因此在静态方法里,不能调用其他非静态变量,也不可以访问非静态变量成员。深层次的解释就是,静态方法可以不通过对象进行调用,也就是说这个方法在对象尚未创建之前就可以调用了,而此时对象尚未创建,(非静态)成员变量和方法根本都还不存在,何谈访问!!!

问题:实例化的对象可以调用类的静态方法吗?

解答:static修饰的方法,既可通过类来调用,也可通过实例来调用,但是不能使用this引用。
不过还是建议使用类来调用静态方法,这样代码更加清晰明确。

GameObject 和 Component

变换组件 (Transform Component)

在 Unity 中创建一个没有变换组件 (Transform Component) 的游戏对象 (GameObject) 是不可能的。变换组件 (Transform Component) 是最重要的组件 (Components) 之一,因为所有游戏对象 (GameObject) 的变换 (Transform) 属性均由此组件启用。在游戏世界/场景视图 (Scene View) 中,它定义了游戏对象 (GameObject) 的位置、旋转和缩放。如果一个游戏对象 (GameObject) 没有变换组件 (Transform Component),它只是计算机内存中的一些信息,实际上并不存在于场景世界。

GameObject 和 gameObject

Gameobject是一个类型,所有的游戏物件都是这个类型的对象。
gameobject是一个对象, 就跟java里面的this一样, 指的是这个脚本所附着的游戏物件

C# 中object类型和var类型

var关键字是C# 3.0开始新增的特性,称为推断类型。

可以赋予局部变量推断“类型”var 而不是显式类型。var 关键字指示编译器根据初始化语句右侧的表达式推断变量的类型。推断类型可以是内置类型、匿名类型、用户定义类型、.NET Framework 类库中定义的类型或任何表达式。

至于object,是C#中所有类型的基类。

也就是说所有类型最中继承于它,不管任何类型都可以转变成object,比如
object v = 1; object s = "s"; object o = new List<int>();
但是,object是引用类型,当你把值类型转化的时候,肯定会有装拆箱操作,影响效率,所以,还是用明确的变量类型比较好

原创粉丝点击