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#相关的更多相关文章

  1. Unity学习之路——主要类

    学习https://blog.csdn.net/VRunSoftYanlz/article/details/78881752 1.Component类gameObject:组件附加的游戏对象.组件总是 ...

  2. 2019年Unity学习资源指南[精心整理]

    前言 进入一个领域,最直接有效的方法就是,寻找相关综述性文章,首先你需要对你入门的领域有个概括性的了解,这些包括: 1.主流的学习社区与网站. 2.该领域的知名大牛与热心分享的从业者. 3.如何有效的 ...

  3. Qt 学习之路 2(73):Qt 线程相关类

    Home / Qt 学习之路 2 / Qt 学习之路 2(73):Qt 线程相关类 Qt 学习之路 2(73):Qt 线程相关类  豆子  2013年11月26日  Qt 学习之路 2  7条评论 希 ...

  4. FastAPI 学习之路(二十)接口文档配置相关

    系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之 ...

  5. [EntLib]微软企业库5.0 学习之路——第一步、基本入门

    话说在大学的时候帮老师做项目的时候就已经接触过企业库了但是当初一直没明白为什么要用这个,只觉得好麻烦啊,竟然有那么多的乱七八糟的配置(原来我不知道有配置工具可以进行配置,请原谅我的小白). 直到去年在 ...

  6. 8年,从2D到3D,我的学习之路

    Mickey 写了一篇 <一个本科毕业生创业两年的感悟>,从他的视角,总结了我们合作的两年经历. 我也来写一篇,介绍我的学习之路,希望对大家有所帮助,谢谢大家- 我的学习方法 1.直接从0 ...

  7. RPC远程过程调用学习之路(一):用最原始代码还原PRC框架

    RPC: Remote Procedure Call 远程过程调用,即业务的具体实现不是在自己系统中,需要从其他系统中进行调用实现,所以在系统间进行数据交互时经常使用. rpc的实现方式有很多,可以通 ...

  8. Redis——学习之路二(初识redis服务器命令)

    上一章我们已经知道了如果启动redis服务器,现在我们来学习一下,以及如何用客户端连接服务器.接下来我们来学习一下查看操作服务器的命令. 服务器命令: 1.info——当前redis服务器信息   s ...

  9. 踏上Salesforce的学习之路(一)

    相信通过前面的学习,大家已经拥有了一个属于自己的Salesforce开发者账号,下面,我们将用这个账号正式踏上Salesforce的学习之路. 首先,点击网址:https://developer.sa ...

随机推荐

  1. pytest框架(一)

    代码示例一 # coding=utf-8 def func(x): return x + 1 def test_answer(): assert func(3) == 5 运行结果 E:\pyYouY ...

  2. Condition应用和源码分析

    1.Condition实现一个队列public class BoundedQueue<T> { public List<T> q; //这个列表用来存队列的元素 private ...

  3. python爬虫——web前端基础(3)

    超链接的使用------>>>> 链接的引用使用的是<a>标记. <a>标记的基本语法:<a href="链接地址"   ta ...

  4. SpringMVC之一个简单的例子

    一.一个简单的例子 二.web.xml文件配置 三.spring-mvc.xml文件(等同于struts2的struts文件) 四.login.jsp(登录页面) 五.登录成功的页面(success. ...

  5. sublime配置nodejs运行调试js

    node.js调试javascript的配置 1. 首先到 nodejs.org 下载 Node.js 安装包并安装.2. 打开 Sublime Text 编辑器.选择菜单 Tools --> ...

  6. CC12:链式A+B

    题目 有两个用链表表示的整数,每个结点包含一个数位.这些数位是反向存放的,也就是个位排在链表的首部.编写函数对这两个整数求和,并用链表形式返回结果. 给定两个链表ListNode* A,ListNod ...

  7. 手机APP开发(安卓、IOS)logo图标在线生成工具上线啦。

    网址:http://www.bejson.com/ui/create_logo/ 您只需要上传一张2M以内的jpg或png图片.然后输入验证码点击提交后,会自动的处理并生成一个压缩包下载. 目前支持2 ...

  8. [LOJ 2082] 「JSOI2016」炸弹攻击 2

    [LOJ 2082] 「JSOI2016」炸弹攻击 2 链接 链接 题解 枚举发射源,将发射源当做原点,对敌人和激光塔极角排序. 由于敌人纵坐标均为正,而其它点均为负,因此每两个角度差在 \(\pi\ ...

  9. II play with GG(思维规律)

    时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 IG won the S champion ...

  10. HTML——制作一个简易菜单栏

    识点写在注释中 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...