值类型和引用类型

值类型存在栈上,结构,枚举,数值类型

引用类型存在堆上,数组,类,接口,委托

把值类型存到引用类型中就是封箱,耗时

引用类型中的值类型是存在堆上,不是栈上,但是作为参数传递时,还是会被copy一份,而不是引用

局部变量的值类型存在栈中

http://blog.csdn.net/onafioo/article/details/68961341

关键字

sealed:修饰类防止继承,修饰方法防止被复写

params:修改函数的最后一个参数,用来传一个size不定的数组fun(params int[] b)

ref:控制参数以引用方式传递,func(ref int val)在函数内修改val会影响参数值。调用函数和定义函数都要有ref关键字

out:指定所给的参数是输出参数,也指定为引用传递,与ref不同的是,ref变量传递前必须有初始值。调用函数和定义函数都要有out关键字

as

is

数组

数组是引用类型
两种形式
int[,,]   c#正常数组
int[][][]  数组的数组,元素需要单独new,锯齿形数组


结构体

可以实现接口
new的作用可以初始化数据,没初始化过数据不可用


委托

四种委托类型 

http://blog.csdn.net/onafioo/article/details/49780591

lambert表达式

Action<int ,string>=(a,b)=>{..........}

delegate int MyDel(int i,int j);

MyDel del=(a,b)=>a+b;                  lambeda表达式方法

MyDel del = delegate(int a,int b){return a+b;}

MyDel del = new MyDel(funcA);

空方法

delegate MyDel();

del = delagate(){...}

del = ()=>{...}

异步

http://blog.csdn.net/onafioo/article/details/44356895

协程

http://blog.csdn.net/onafioo/article/details/71055295

线程

线程:

 static void Main(string[] args)
{
Thread t1 = new Thread(new ThreadStart(TestMethod));
t1.Start(); } public static void TestMethod()
{
Console.WriteLine("不带参数的线程函数");
}

事件

Class Compony{
public delegate void DeleFunc(int a);
public event DeleFunc eventListener;
public void DoEvent(){
if(eventListener!=null){
eventListerner(1);
}
} void Main(){
Compony c = new Compony();
c.eventListener+=funcA();
c.DoEvent();
}
void funcA(int i){
print("funca");
} }

泛型

反射

http://blog.csdn.net/onafioo/article/details/48974737

常用数据结构及其效率

List<>相关lambda表达式

网络


C#优化

C#基础知识回顾的更多相关文章

  1. java基础知识回顾之---java String final类普通方法

    辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /*     * 按照面向对象的思想对字符串进行功能分类.     *      ...

  2. C#基础知识回顾-- 反射(3)

    C#基础知识回顾-- 反射(3)   获取Type对象的构造函数: 前一篇因为篇幅问题因为篇幅太短被移除首页,反射这一块还有一篇“怎样在程序集中使用反射”, 其他没有什么可以写的了,前两篇主要是铺垫, ...

  3. C#基础知识回顾-- 反射(1)

    C#基础知识回顾-- 反射(1)   反射(reflection)是一种允许用户获得类型信息的C#特性.术语“反射”源自于它的工作方式: Type对象映射它所代表的底层对象.对Type对象进行查询可以 ...

  4. C#基础知识回顾--线程传参

    C#基础知识回顾--线程传参 在不传递参数情况下,一般大家都使用ThreadStart代理来连接执行函数,ThreadStart委托接收的函数不能有参数, 也不能有返回值.如果希望传递参数给执行函数, ...

  5. python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

    本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...

  6. Java基础知识回顾之七 ----- 总结篇

    前言 在之前Java基础知识回顾中,我们回顾了基础数据类型.修饰符和String.三大特性.集合.多线程和IO.本篇文章则对之前学过的知识进行总结.除了简单的复习之外,还会增加一些相应的理解. 基础数 ...

  7. C++ 基础知识回顾总结

    一.前言 为啥要写这篇博客?答:之前学习的C和C++相关的知识,早就被自己忘到一边去了.但是,随着音视频的学习的不断深入,和C/C++打交道的次数越来越多,看代码是没问题的,但是真到自己操刀去写一些代 ...

  8. scrapy实战1,基础知识回顾和虚拟环境准备

        视频地址 https://coding.imooc.com/learn/list/92.html   一. 基础知识回顾     1. 正则表达式 1)贪婪匹配,非贪婪匹配 .*? 非贪婪 . ...

  9. C#学习笔记(基础知识回顾)之值类型与引用类型转换(装箱和拆箱)

    一:值类型和引用类型的含义参考前一篇文章 C#学习笔记(基础知识回顾)之值类型和引用类型 1.1,C#数据类型分为在栈上分配内存的值类型和在托管堆上分配内存的引用类型.如果int只不过是栈上的一个4字 ...

  10. C#学习笔记(基础知识回顾)之值传递和引用传递

    一:要了解值传递和引用传递,先要知道这两种类型含义,可以参考上一篇 C#学习笔记(基础知识回顾)之值类型和引用类型 二:给方法传递参数分为值传递和引用传递. 2.1在变量通过引用传递给方法时,被调用的 ...

随机推荐

  1. TEA对称加密算法

    今天在看<Distributed Systems Concepts and Design>这本书的时候,在讲到分布式系统的安全性的时候,给出了TEA算法,书本上有现成的代码,所以摘录下来以 ...

  2. C++ Lambda表达式和仿函数笔记

    C++11中引入了Lambda表达式,其语法如下: [capture list](parameter list)->return type { function body } 参考博文:C++ ...

  3. MongoDB 数据库、集合创建删除与文档插入

    本文章主要介绍mongodb的基本命令,前提条件,你的本地已经安装了mongo. 一.基本命令使用(主要是创建,增删改.) 0.mongoDb统计信息 获得关于MongoDB的服务器统计,需要在Mon ...

  4. github 版本控制 android studio

    注:本教程实验于android studio 3.1.2 1.下载git :https://gitforwindows.org/   安装 git. 2.配置git 3.配置github 4.上传项目 ...

  5. CALayer的隐式动画

    CALayer的使用 在我的理解中CALayer就是iOS中利用图层精简非交互式绘图.那么那些核心动画类.也就是变化图层的非交互式绘制规则而已.其中的本质就是将CALayer中的内容转化为map图.从 ...

  6. Vue 组件实例属性的使用

    前言 因为最近面试了二.三十个人,发现大部分都还是只是停留在 Vue 文档的教程.有部分连教程这部分的文档也没看全.所以稍微写一点,让新上手的 Vuer 多了解 Vue 文档的其他更需要关注的点. 因 ...

  7. vue axios拦截器介绍

    关于axios的拦截器是一个作用非常大,非常好用的东西.分为请求拦截器和响应拦截器两种.我一般把拦截器写在main.js里. 1. 请求拦截器 请求拦截器的作用是在请求发送前进行一些操作,例如在每个请 ...

  8. ModuleNotFoundError: No module named 'numpy.core._multiarray_umath' ImportError: numpy.core.multiarray failed to import

      出现以下错误:可能是因为你的numpy版本太低 更新numpy的版本 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgra ...

  9. jquery之extend

    jquery的extend方法的用法1. [代码][JavaScript]代码     01<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01// ...

  10. html5--4-5 embed元素及其他

    html5--4-5 embed元素及其他 学习要点 掌握embed元素的使用 了解object元素的使用 温馨提示:关于video和audio的事件方法等涉及都JavaScript知识的内容,暂时不 ...