Unity学习之路——C#相关
1.C#数组
数组定义 int[] number; float[] score; string[] names;
动态初始化,借助new运算符为数组元素分配空间
int[] Array = new int[6];
int[] Array = new int[3](1,2,3);
int[] Array = new int[](1,2,3);
静态初始化:
int[] Array = {1,2,3,4,5};
2.枚举
enum Season{Spring, Summer, Autumn, Winter}
Season sea = Season.Spring;
3.类
属性(访问器)本质上就是set和get方法
class MyClass{
private string name;
public string Name
{
get{return Name;}
set{Name = value;}
}
};
4.引用数据类型
引用类型在堆中分配,由程序new分配空间
引用类型包括 Object, string, 类, 接口, 委托, 数组定义
C#中两种数据类型,引用类型和值类型
5.静态类
静态类用于创建无需创建类的实例就能访问的数据和函数,静静态类只能包含静态成员,不可以包含非静态成员
静态成员用于分离独立任何对象标识的数据和行为, 无论对象发生任何改变,这些数据和函数都不会随之变化。静态类使用static关键字修饰
示例:
static class Mathf{
public static string mainFunc = "111";
public const int defaultValue = 0;
public static int MyAbs(int value)
{
return value>0?value:-value;
}
};
访问静态类中的成员使用类名加点操作加静态成员的方式
int abs = Mathf.MyAbs(-10);
int de = Mathf.defaultValue;
静态类特性:
静态类只能包含静态成员
静态类无法实例化
静态类是密封的,无法被继承
静态类不能包含有示例构造函数
P.S. 静态类不能有实例化构造函数,但是可以有静态构造函数
静态构造函数用于初始化任何静态数据或者用于执行仅需要执行一次的特定操作
静态构造函数可以出现在非静态类中,在非静态类中除了可以声明实例构造函数,也可以声明静态构造函数
6.接口
接口是一组包含了类或结构可以实现的功能的定义
C#只支持单继承,接口可以一定程度上弥补该不足
public interface IFly{
void MyFly();
};
接口的特性:
(1)接口是一个引用类型,只包含了功能的定义,不包含功能实现
(2)C#接口成员的访问级别是默认的(public),不可以使用其他修饰符
(3)接口成员不能有static, abstract, override, virtual修饰
(4)接口一旦被实现,就必须实现接口当中的所有的成员,除非实现类本身是抽象类
(5)接口无法直接进行实例化
(6)接口可以包含事件,索引器,方法和属性,但不能包含字段
(7)类的继承只能单继承,接口的实现支持多实现
接口的实现支持多实现
class Parrot:IFly, ISpeak
{
public void MyFly()
{
Console.WriteLine("dasada");
}
};
7.接口和抽象类
接口和抽象类非常相似,它定义了一些未实现的属性和方法;索引继承接口的类都继承这些成员,这个角度可以把接口理解为一个类的模板
接口最终的目的是起到统一的作用
相同点:
两者都不能被实例化
两者都包含了由其他类或结构继承或实现的抽象成员
不同点:
抽象类当中除了拥有抽象成员外,还可以拥有非抽象成员,而接口中的所有的成员都是抽象的。
抽象类成员可以使用修饰符修饰,接口当中默认是public
接口当中不可以包含构造方法,析构方法,静态成员以及常量
C#只支持单继承,接口支持多继承
8.委托
委托delegate是表示将方法作为参数传递给其他方法
class HelloWorld
{
public delegate void GreetingDelegate(string name);
};
public void GreetingPeoPle(string name, GreetingDelegate method)
{
method(name);
}
Unity学习之路——C#相关的更多相关文章
- Unity学习之路——主要类
学习https://blog.csdn.net/VRunSoftYanlz/article/details/78881752 1.Component类gameObject:组件附加的游戏对象.组件总是 ...
- 2019年Unity学习资源指南[精心整理]
前言 进入一个领域,最直接有效的方法就是,寻找相关综述性文章,首先你需要对你入门的领域有个概括性的了解,这些包括: 1.主流的学习社区与网站. 2.该领域的知名大牛与热心分享的从业者. 3.如何有效的 ...
- Qt 学习之路 2(73):Qt 线程相关类
Home / Qt 学习之路 2 / Qt 学习之路 2(73):Qt 线程相关类 Qt 学习之路 2(73):Qt 线程相关类 豆子 2013年11月26日 Qt 学习之路 2 7条评论 希 ...
- FastAPI 学习之路(二十)接口文档配置相关
系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之 ...
- [EntLib]微软企业库5.0 学习之路——第一步、基本入门
话说在大学的时候帮老师做项目的时候就已经接触过企业库了但是当初一直没明白为什么要用这个,只觉得好麻烦啊,竟然有那么多的乱七八糟的配置(原来我不知道有配置工具可以进行配置,请原谅我的小白). 直到去年在 ...
- 8年,从2D到3D,我的学习之路
Mickey 写了一篇 <一个本科毕业生创业两年的感悟>,从他的视角,总结了我们合作的两年经历. 我也来写一篇,介绍我的学习之路,希望对大家有所帮助,谢谢大家- 我的学习方法 1.直接从0 ...
- RPC远程过程调用学习之路(一):用最原始代码还原PRC框架
RPC: Remote Procedure Call 远程过程调用,即业务的具体实现不是在自己系统中,需要从其他系统中进行调用实现,所以在系统间进行数据交互时经常使用. rpc的实现方式有很多,可以通 ...
- Redis——学习之路二(初识redis服务器命令)
上一章我们已经知道了如果启动redis服务器,现在我们来学习一下,以及如何用客户端连接服务器.接下来我们来学习一下查看操作服务器的命令. 服务器命令: 1.info——当前redis服务器信息 s ...
- 踏上Salesforce的学习之路(一)
相信通过前面的学习,大家已经拥有了一个属于自己的Salesforce开发者账号,下面,我们将用这个账号正式踏上Salesforce的学习之路. 首先,点击网址:https://developer.sa ...
随机推荐
- pgfincore外部OS缓存安装
su - root cd /opt/soft_baktar -zxvf pgfincore-1.0.gz cd pgfincore-b2b53deexport PATH=/opt/pgsql963/b ...
- ios 类似淘宝评论星星功能
创建星星视图: //星星 _myview = [[UIView alloc]initWithFrame:CGRectMake(95, 5, 200, 50)]; UIPanGestureRecogni ...
- Linux对外提供服务 网络操作 端口操作 1.开启服务监听端口 2.设置防火墙,放行访问端口的包 iptables&netfilter 四表五链和通堵策略
主题: Linux服务器上软件提供服务 1.网络操作 2.端口操作 1.网络操作 本机必须能够ping通目标主机(本地虚拟机或者远程主机) 2.端口操作 1.开启服务监听端口 2.设置防火墙,放行访问 ...
- 16.创建与操纵表--SQL
一.新建表 利用CREA TE TA BLE创建表,必须给出下列信息: 新表的名字,在关键字CREA TE TA BLE之后给出: 表列的名字和定义,用逗号分隔: 有的DBMS还要求指定表的位置. C ...
- Js $.merge() 函数(合并两个数组内容到第一个数组)
定义和用法 $.merge() 函数用于合并两个数组内容到第一个数组. 语法 $.merge( first, second ) 参数 描述 first Array类型 第一个用于合并的数组,合并后 ...
- Django之ORM优化查询的方式
ORM优化查询的方式 一.假设有三张表 Room id 1 2 .. 1000 User: id 1 .. 10000 Booking: user_id room_id time_id date 1 ...
- Linux操作学习笔记1
Linux只有一个根目录/,所有的文件和设备都当成是文件进行管理: pwd 打印当前工作目录 (print working directory) whoami ls 列出当前目录面的文件 ls -l ...
- jdk1.6与jdk1.7list集合排序区别与算法
源码分析: 在Collections.sort中: public static <T extends Comparable<? super T>> void sort(L ...
- swift 基础-1
一.常量与变量 var testVariable = 42 testVariable = 50 println(testVariable) ...
- 《移动Web前端高效开发实战》笔记2——使用Gulp构建一个ECMAScript 6和Sass应用
8.3.1 安装和配置 运行Gulp需要Node.js环境,请参看第二章内容搭建Node.js环境.使用NPM全局安装Gulp,命令如下: npm install gulp-cli –g 然后,在项目 ...