关于Unity的C#基础学习(二)
一.Debug的使用
int a=3;
Debug.Log("a="+a);
二.整数的定义
int m;
Debug.Log(m); //C#比C更严谨,没有初始化的变量打印出来使没有意义的,会报错,这个m目前是一个不确定的数。C#的任何一行代码都是有意义的。
三.浮点数的定义
//C#比C更严谨,不能像C中的那样
float a;
a=0.1;
//会报错,必须是
float a;
a=0.1f;
四.表达式
1.赋值表达式=
2.算术表达式+-*/,%,++,--
注意:整数之间的除法做完,是整数,会把余数直接去掉。小数之间的除法做完,则是小数。
小数和整数的混合运算,结果以精度高的为准。
各种运算的混合,也要按照表达式的优先级。
字符与加法的混合,结果是一个字符。
a++的,必须把和a有关的先计算完,才能再把a+1
++a的,必须先把a+1,再进行和a有关的计算
3.比较表达式>,<,>=,<=,==,!=
4.逻辑表达式&&,||
注意:左右语句都必须是逻辑表达式,有true或者false结果的,C#比C更严谨,C里面还可以用一个整型变量表示true,只要不为0就是true,但是在C#中则完全不行,会报错。
5.类型强转
注意:高精度转低精度,精度有损失,必须要用显示的强转符(int),就算是1.00转1也不行,C#更严谨,低精度转高精度不需要。
五.执行顺序
1.顺序执行,如果是函数中的顺序执行,执行完后会执行return语句,就算没有return语句,也会在函数大括号前隐氏地执行return语句返回。
2.条件语句,if(逻辑表达式){},if(逻辑表达式){}else{},if(逻辑表达式){}else if(逻辑表达式){}else{},switch(整数变量/字符变量){case 1:{} break;case 2:{} break;defalut:{}}
注意:switch中的case后面必须带一个break,不像C可以不带,C#更严谨。
3.循环语句,for(初始化,初始化;循环是否继续的条件判断;循环迭代,循环迭代){},do{}while(逻辑表达式),while(逻辑表达式){},
break:终止所以循环,continue:终止本次循环,进行下一次循环
注意:for循环,首先初始化,然后判断是否满足循环条件,如果满足,执行循环体,最后执行循环迭代,接着判断是否满足循环条件...;如果不满足,则退出循环。
for循环的初始化,循环是否继续的条件判断,循环迭代都可以省略。
for循环的循环是否继续的条件判断省略的话就是死循环。
六.函数调用和参数传递(和C最大不同)
C#数据类型:1.基本数据类型 2.引用类型(存的是对象的引用)
注意:1.函数的参数是另外一个变量,函数参数传递只是变量间值的传递,也就是变量和变量之间的赋值
2.但是如果函数参数的类型是引用类型的,当函数返回时,会把原来的引用变量所指的内容改变,因为被赋值的函数引用变量参数也指向了原先引用变量所指向的内容。
七.out的用法(C#和所以语言都不同的一点)
例子
Person p;
p=new Person();
p.name=1;
p.age=10;
create_person(out p);
Debug.Log("p.age=",p.age);//结果等于11
void create_person(out Person p){
p=new Person; //为了区别函数引用变量传递也可以改变原来引用变量所指内容,也就是证明这个person和函数外面那个person不一样,这里故意弄成两个不同的person,如果是平时没有out时传基本类型进来,系统会自动帮我们创建新的变量。
//还有一种更直观的区别函数引用变量传递和out修饰的函数引用变量传递的区别,就是函数引用变量传递的函数中如果把p=null,外面的p依然不为null,而out修饰的函数引用变量传递中把p=null;则外面的那个p就是null。
p.name=0;
p.age=11;
}
//被out修饰的参数,那么在函数内可以直接修改这个变量的值,不管是基础类型的变量还是引用类型的变量。
//我是这样通俗理解的:被out修饰的参数,会把在函数中经过的变化,更新到原来外面的变量,从头到尾就是一个变量被更新了的感觉。
关于Unity的C#基础学习(二)的更多相关文章
- Python入门基础学习 二
Python入门基础学习 二 猜数字小游戏进阶版 修改建议: 猜错的时候程序可以给出提示,告诉用户猜测的数字偏大还是偏小: 没运行一次程序只能猜测一次,应该提供多次机会给用户猜测: 每次运行程序,答案 ...
- Python基础学习二
Python基础学习二 1.编码 utf-8编码:自动将英文保存为1个字符,中文3个字符.ASCll编码被囊括在内. unicode:将所有字符保存为2给字符,容纳了世界上所有的编码. 2.字符串内置 ...
- Go基础学习(二)
数组[array] 数组定义[定义后长度不可变] 12 symbol := [...]string{USD: "$", EUR: "€", GBP: " ...
- Django基础学习二
今天继续学习django的基础 学习用户提交url如何获得返回值 1.首先需要在工程的urls文件定义指定的urls要路由给哪个函数 在这个例子中,我们定义home的urls路由给views里的tes ...
- salesforce lightning零基础学习(二) lightning 知识简单介绍----lightning事件驱动模型
看此篇博客前或者后,看一下trailhead可以加深印象以及理解的更好:https://trailhead.salesforce.com/modules/lex_dev_lc_basics 做过cla ...
- CSS入门基础学习二
我们下午继续学习CSS的入门基础,搬上你的小板凳赶快进入吧! 一.背景(background) Background-color:背景颜色 background-image (背景图片) backgr ...
- WebService基础学习(二)—三要素
一.Java中WebService规范 JAVA 中共有三种WebService 规范,分别是JAX-WS.JAX-RS.JAXM&SAAJ(废弃). 1.JAX-WS规范 ...
- jQuery基础学习(二)—jQuery选择器
一.jQuery基本选择器 1.CSS选择器 在学习jQuery选择器之前,先介绍一下之前学过的CSS选择器. 选择器 语法 描述 示例 标签选择器 E { ...
- HTML基础学习(二)—CSS
一.CSS概述 CSS(Cascading Stytle Sheets)层叠样式表,用来定义网页的显示效果.可以解决HTNL代码对样式定义的重复,提高了后期样式代码的可维护性,并增强了网页的显 ...
随机推荐
- jtemplate 为javascript前端html模版引擎
最近的项目中用到了jtemplate, 它是客户端基于javascript的模板引擎,绑定的数据为json对象.以前我在页面上显示数据列表时最喜欢用Repeater控件了,因为它相对与其它几个服务端控 ...
- iterator [ɪtə'reɪtə] 遍历器
lterator 遍历器 遍历器是一种接口,它为不同的数据结构提供了统一的访问机制. 如果一个数据结构具有遍历器接口,那么就可以依次处理该数据结构的成员. 当前 javascript 用来表示集合的数 ...
- a标签添加点击事件
a标签添加点击事件 CreateTime--2017年8月8日09:11:34 Author:Marydon 一.基础用法 方式一:(不推荐使用) <a href="javascr ...
- Linux平台Boost的编译方法
本博客(http://blog.csdn.net/livelylittlefish)贴出作 者(三二一@小鱼)相关研究.学习内容所做的笔记,欢迎广大朋友指正! Linux平台Boost的编译方法 Bo ...
- 最大似然估计(MLE)与最大后验概率(MAP)
何为:最大似然估计(MLE): 最大似然估计提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”.可以通过采样,获取部分数据,然后通过最大似然估计来获取已知模型的参数. 最大似然估计 ...
- Android--从路径中提取文件名
方法一:利用String类 public String getFileName(String pathandname){ int start=pathandname.lastIndexOf(" ...
- 如何用php启动exe程序,并在进程中查看?
function query_process($service) { /* **查看WINDOWS系统进程列表,并查找指定进程是否存在 */ $tasklist = $_SERVER["WI ...
- 细说WebSocket -- Node.js篇
在上一篇提高到了 web 通信的各种方式,包括 轮询.长连接 以及各种 HTML5 中提到的手段.本文将详细描述 WebSocket协议 在 web通讯 中的实现. 一.WebSocket 协议 1. ...
- JVM 参数详解
1.使用$JAVA_HOME/bin/java 可看到所有参数说明 用法: java [-options] class [args...] (执行类) 或 java [-options] -jar ...
- Android Study 之 初识ButterKnife(8.5.1)及简单运用
LZ-Says:突然间不知道说什么好,祝大家编码无bug吧~ 前言 话说,Android开发的兄弟们都知道,每次初始化控件,设置对应的事件.写的那点过程多并且恶心.我们先一块回想下不堪的以前~ 那些年 ...