Crystal‘s Unity Notes:C#基础知识

命名空间

namespace  可以看做是一个文件夹

  1. 一个文件中可以存在多个命名空间
  2. 命名空间中可以再嵌套命名空间
  3. 命名空间的取名规范依照标识符的取名规范

using(使用程序引用集)  后面其实也是命名空间  (系统写好的命名空间)

using System;
using System.Collections.Generic;  //嵌套的命名空间
using UnityEngine;

 C#语言是一门完全面向对象的语言  (在面向过程中Main函数是主函数,也是程序的入口)

 第一个函数

Console.WriteLine("Hello World!"); //输出Hello World!

输入函数  (同时也是阻塞函数 执行到这里就等待用户输入)

Console.Read();

数据类型的分类:

  1. 引用类型:数组、字符串、类类型、接口、委托(事件)
  2. 值类型:数值类型、字符类型、结构体、枚举、Boolean类型

值类型:

1.数值类型:

        (1)整数类型:按照字节大小来划分  1byte = 8bit

一个字节 byte(无符号) sbyte(有符号)
两个字节 short(有符号)

ushirt(无符号)

四个字节 int(有符号)

uint(无符号)

八个字节 long(有符号)

ulong(无符号)

       (2)浮点类型:通过减法进行浮点数的判断 差值小于0.001近似相等

单精度浮点数(没有符号类型) 四字节 float ( float float_number = 3.14f )

双精度浮点数:

八字节

double(double double_number = 3.14 || double double_number = 3.14d )

完全精确的小数类型

十六字节 decimal  (先将数据类型转换为字符传进行存储 使用时再转换为数值类型)

2.字符类型:

        char 两字节。

        1.char赋值的数据是用 ' ' 括起来的(使用单引号'A')

        2. ' ' 中括起来的数据不仅仅只有1位数据  ( 'NUT' )

        3.char类型可以跟整数类型之间进行转换  ASCII码

        4.字符串类型中的每一个元素都是char类型(字符串类型可以看成是一个字符数组)      

3.结构体:

        struct(结构体关键字)  结构体名字  {属性;属性……;构造函数;方法}

4.枚举:

        enum(枚举关键字)  枚举的名字  {内容1,内容2....};

5.Boonlean类型:

        bool 一个字节(true和false)

        在C#中0和1不能代表true和false


数据类型之间的转换:

1.数值类型之间的转换

        隐式转换:没有进行强制类型转;将储存范围小的转换为储存范围大的。

       显示转换:将储存范围大的转换为储存范围小的,如果转换的数值需要的储存空间大于数据类型的储存空间,转换不准确。

2.字符串转换为数值类型      

        前提:字符串内只能是一个具体的数值,不能包括其他的字符,首位空格除外。

        type.Parse(string)

        Conver.To...(string)

3.枚举转换为数值类型

显示转换:type num = (type)枚举类.内容


值传递和引用传递

值类型:数值 布尔 字符 枚举 结构体...
引用类型:类 数组 字符串 接口 委托(事件)...

值传递:将变量的值复制一份到函数值进行操作
引用传递:将变量本身传递到函数中

在函数间传递值类型的参数时,如果需要对实参中的数据作出改变的话,就得加上ref关键字,将值传递变为引用传递


函数:特定功能块

返回值 函数名(参数列表){函数体}

当一个函数不需要返回值的时候为void,如果需要返回值的用对应的类型

 一个简单的输出函数

int a = 666;

print(a);  //666

void print(int a)
{
    Console.WriteLine(a);  
}

函数的参数:ref out params 默认参数

ref:reference 引用

out:让一个函数拥有多个返回值

  1. ref和out修饰的参数,在实际调用的时候,需要在对应的实参前把对应的关键字加上
  2. ref关键字修饰的参数,实参传递之前必须先初始化好
  3. out关键字修饰的参数,在函数返回之前对out修饰的参数进行赋值。
  4. params修饰的参数可以实现一个不定长度的参数列表出来
  5. params修饰的参数一定是放到参数列表的末尾
  6. 默认参数在具体使用的时候可以不用给实参,但是不传递实参的时候将会用这个参数默认给的值
  7. 默认参数必须放到所有非默认参数后

这是一个简单的交换数值代码

int num1 = 5;
int num2 = 3;

int num3 = num1;
num1 = num2;
num2 = mum3;

Console.WriteLine(num1);   //3
Console.WriteLine(num2);   //5

写成函数如下

int num1 = 5;
int num2 = 3;

Swap(num1,num2);

Console.WriteLine(num1);   //5
Console.WriteLine(num2);   //3

void Swap(int num1,int num2)
{    
    int num3 = num1;
    num1 = num2;
    num2 = mum3;
}

实际上输出的还是5 和 3;并没有发生交换 

因为函数的形参和实参的传递实际上是值传递  相当于函数新创建的两个变量分别接受了外界调用所传的值 交换实际上只是函数内两个变量的交换 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值