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 ...
随机推荐
- servlet连接mysql数据库和oracle数据库
连接mysql数据库 package dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.P ...
- link-1-STL 标准模板库
STL(Standard Template Library,标准模版库)是C++语⾔言标准中的重要组成部分.STL以模板类和模版函数的形式为程序员提供了了各种数据结构和算法的实现,程序员吐过能够充分的 ...
- git小白的学习
1.1 Git介绍 1.1.1 什么是Git Git是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理.Git 是 Linus Torvalds 为了帮助管理 Linux ...
- day7计算作业详解
1.day7题目 1.判断一个数是否是水仙花数, 水仙花数是一个三位数, 三位数的每一位的三次方的和还等于这个数. 那这个数就是一个水仙花数, 例如: 153 = 13 + 53 + 3**3 2.给 ...
- PHP 扩展篇 _ 持续更新
记住这个网站:http://pecl.php.net/ PHP-Redis扩展更新时间:2019/05/06 PHP安装Redis 1:下载目前最新版的redis插件 wget http://pecl ...
- idea 添加yuicompressor压缩js/css
打开idea 点击file->Settings 出现如下界面 argumets项填写 : -jar F:\yui\yuicompressor-2.4.8.jar $FilePath$ -o $F ...
- virtualenv模块安装
依赖包管理模块(virtualenv) virtualenv是Python的虚拟环境,可以在同一台PC隔离不同的python开发环境.virtualenv可以创建一个隔离的python环境(沙盒).使 ...
- TaskFactory单例模式利用xml
/** * * Copyright (c) 1995-2009 Wonders Information Co.,Ltd. * 1518 Lianhang Rd,Shanghai 201112.P.R. ...
- mysql ibd 文件过大问题
公司的数据库挂了查了下 ,每个表都有自己独立的表空间,有一张表的ibd 文件有好几G了.然后想要释放它. 解决方案: 第一种,删除表,然后重新建.drop table 操作自动回收表空间 第二种,al ...
- Kestrel服务器
Kestrel服务器 什么是Kestrel服务器 Kestrel是开源的(GitHub提供的源代码),事件驱动的异步I / O服务器,用于在任何平台上托管ASP.NET应用程序.这是一个监听服务器和一 ...