关于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代码对样式定义的重复,提高了后期样式代码的可维护性,并增强了网页的显 ...
随机推荐
- android基础知识:SharedPreferences和PreferenceActivity
1.android文件存储 对Android系统了解的都知道,Android系统有四种基本的数据保存方法,一是SharedPreference,二是文件,三是SQLite,四是ContentProvi ...
- 在Flex (Flash)中嵌入HTML 代码或页面—Flex IFrame
在flex组件中嵌入html代码,可以利用flex iframe.这个在很多时候会用到的,有时候flex必须得这样做,如果你不这样做还真不行…… flex而且可以和html进行JavaScript交互 ...
- Drawing text
We begin with drawing some Unicode text on the client area of a window. #!/usr/bin/python # -*- codi ...
- view xml 中的 button 调用web客户端事件
最近写一个模块 需要 在客户端干点事. 按常规的方法, 应该是写个 客户端模块. 在 客户端 init, start, render 去渲染个按钮出来干事.暂时还不太理解WEB模块如何很好地同服务器端 ...
- 比较全的log4j示例
<?xml version="1.0" encoding="UTF-8"?> <configuration status="off& ...
- 使用meta属性禁用手机浏览器的缩放功能
在移动设备浏览器上,通过为视口(viewport)设置 meta 属性为 user-scalable=no 可以禁用其缩放(zooming)功能.这样禁用缩放功能后,用户只能滚动屏幕,就能让你的网站看 ...
- Android异步任务处理框架AsyncTask源代码分析
[转载请注明出处:http://blog.csdn.net/feiduclear_up CSDN 废墟的树] 引言 在平时项目开发中难免会遇到异步耗时的任务(比方最常见的网络请求).遇到这样的问题.我 ...
- 将相关数据拼成所需JSON数据
参考: http://www.cnblogs.com/shuilangyizu/p/6019561.html 有时候我们需要将一些数据拼装成所需要格式的JSON,可以使用如下方法,本人觉得还是比较方便 ...
- redmine 的安装
https://bitnami.com/stack/redmine/installer#官方地址 安装很简单,给权限 chmod +x bitnami-redmine-3.3.0-1-linux-x6 ...
- Spring学习10-SpringMVC入门
二.SpringMVC请求处理流程 其中Front controller :前端控制器 Controller:后端控制器 三.Spring核心组件及请求处理流程