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 ...
随机推荐
- 在VMware上克隆Linux虚拟机及其网卡配置方法
最近在搭建Hadoop集群,1个Master,3个Workers.使用VMware workstations创建Linux虚拟机,版本是CentOS7.安装完成并做了相应的网络配置后,使用VMware ...
- datastream解析
在EOS的eosiolib模块中有一个datasteam.hpp文件,它几乎实现了所有类型对字节流的转换,是一个非常强大的工具类,在这里对它的做一个简单的提取,也加强一下自己对它的理解.在下面的工程中 ...
- CentOS 7 部署 nginx-1.14.2
参考:http://www.linuxe.cn/post-168.html 链接:https://pan.baidu.com/s/1NzHIY7mYgHJ6yMF_rdd0ZQ 提取码:n8o9 下载 ...
- docker镜像删除
1. 查看镜像 docker images [-q] 只列出image id [-a] 列出所有的image 2. 查看运行的镜像 docker ps [-q] 只列出container id [-a ...
- Opencv级联分类器实现人脸识别
在本章中,我们将学习如何使用OpenCV使用系统相机捕获帧.org.opencv.videoio包的VideoCapture类包含使用相机捕获视频的类和方法.让我们一步一步学习如何捕捉帧 - 第1步: ...
- openstack修改增加网卡及更改ip
1.neutron更改及mysql数据库更改网卡及ip: neutron port-update ae22c84b-22a9-4618-b046-1eb61379bcea --all ...
- meta标签的一些用法
meta是html语言head区的一个辅助性标签.几乎所有的网页里,我们可以看到类似下面这段的html代码: <head> <meta http-equiv="conten ...
- .net 中 Json 与List 相互转
var duanxin1 = new DuanXin(); duanxin1.RECEIVE_LOGIN_NAME = "dd"; duanxin1.RECEIVE_Number ...
- 2015博客升级记(五):CentOS 7.1编译安装PHP7
https://typecodes.com/web/centos7compilephp7.html
- 利用mysqldump备份magento数据库
在Magento开发和维护过程中,经常需要将Magento的数据库导出.导入,这些工作可以通过mysqldump这个工具来实现. 下面我来简单介绍一下mysqldump在导出导入Magento dat ...