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 ...
随机推荐
- JS高级学习历程-17
[正则案例] 1 匹配手机号码
- [题解](折半搜索)luogu_P4799_BZOJ_4800世界冰球锦标赛
抄的题解 以及参考:https://www.cnblogs.com/ZAGER/p/9827160.html 2^40爆搜过不了,考虑折半搜索,难点在于合并左右的答案,因为有可能答案同时载左右两边,我 ...
- C# 数据库连接字符串拼接
string connectionString = string.Format(@"Data Source={0};User ID={1};Password={2};Initial Cata ...
- jQuery基础(2)
jQuery的属性操作,使用jQuery操作input的value值,jQuery的文档操作 零.昨日内容回顾 jQuery 宗旨:write less do more 就是js的库,它是javasc ...
- notepad++ 插件大全
Explorer 资源管理器 Colour Picker 拾色器 SecurePad 加密工具 HTMLTag NppExport 导出为特殊格式 Simple script AHKExtLe ...
- MariaDB 实现主从复制
實驗目的: MariaDB為MySQL的一個分支,其完全開源.無版權之虞且操作上與 MySQL 一脈相承,實際應用中非常廣泛,軟件本身很小,安裝容易,使用簡單. 但其也有缺點,指令行方式操作,無原生G ...
- 3.Freshman阶段学习内容的确定
我刷知乎.在知乎上答题的程序员,不是很牛逼就是更牛逼,说起各种系统.各种系统的各种版本.各种语言.数据库.算法.IT届的各种圣战都有板有眼.信手拈来.头头是道,不得不服.这导致了一些非常严重的问题:我 ...
- Java基础(变量、运算符)
第2天 Java基础语法 今日内容介绍 u 变量 u 运算符 第1章 变量 1.1 变量概述 前面我们已经学习了常量,接下来我们要学习变量.在Java中变量的应用比常量的应用要多很多.所以变量也是尤为 ...
- class类型重定义,防止头文件重复加载
今天调用自己写的一个类,出现了class类型重定义问题,上网查了相关资料,发现是头文件重复include引起的问题. 防止头文件重复加载: 系统那些头文件,无论怎么include都没事,因为一般都用了 ...
- C++ error:Debug Assertion Failed.Expression:_BLOCK_TYPE_IS_VALID(phead->nBlock)
Debug Assertion Failed.Expression:_BLOCK_TYPE_IS_VALID(phead->nBlockUse) 关于上面这个错误,我在上一篇文章中的程序遇到过了 ...