• 快排排序算法
 public class QuickSort
{
public static void Main(String[] args)
{
int[] array = { , , , , , , , };
quickSort(array, , array.Length - );
for (int i = ; i < array.Length; i++)
{
Console.WriteLine(array[i]);
}
Console.ReadKey();
}
//分化好后就是简单的递归
public static void quickSort(int[] array, int start, int end)
{
if (start < end)
{
int position = partition(array, start, end);
quickSort(array, start, position - );
quickSort(array, position + , end);
}
}
//重排array,并找出“临界”位置的索引
//分化(Partition)的步骤,划分数组
public static int partition(int[] array, int start, int end)
{
int position = start - ;
int base1 = array[end];
for (int i = start; i < end; i++)
{
if (array[i] <= base1)
{
position++;
int temp = array[position];
array[position] = array[i];
array[i] = temp;
}
}
int temp1 = array[position + ];
array[position + ] = array[end];
array[end] = temp1;
return position + ;
}
}
}

委托就是把方法当参数进行传递!还有匿名委托

   delegate int NumOpe(int a, int b); //第一步:委托声明
class Class1
{
static void Main(string[] args)
{
Class1 c1 = new Class1();
NumOpe p1 = new NumOpe(c1.Add); //委托实例化,注意参数是要使用的参数名,且不带括号
NumOpe p2 = new NumOpe(c1.Sub);
Console.WriteLine(p1(, )); //委托调用
Console.WriteLine(p2(, )); //委托调用
Console.ReadLine();
} private int Add(int num1, int num2)
{
return (num1 + num2);
}
private int Sub(int num1, int num2)
{
return (num1 - num2);
}
}
  • 冒泡排序
public class BubbleSort
{
static void Main(string[] args)
{
int temp;
int[] arrShort = { , , , , };
for (int i = ; i < arrShort.Length; i++)
{
for (int j = i + ; j < arrShort.Length; j++)
{
if (arrShort[j] < arrShort[i])
{
temp = arrShort[j];
arrShort[j] = arrShort[i];
arrShort[i] = temp;
}
}
} for (int i = ; i < arrShort.Length; i++)
{
Console.WriteLine(arrShort[i]);
}
Console.ReadKey();
}
}
  • 递归

递归是指在函数的定义中使用函数自身的方法。

  • 深拷贝和浅拷贝

浅拷贝 只拷贝指针,深拷贝就是拷贝他的值,重新生成的对像。就像是浅拷贝就是你的影子,深拷贝是你的克隆人,你没了影子也就没了,但是克隆人还活着。

简单的来说就是,在有指针的情况下,浅拷贝只是增加了一个指针指向已经存在的内存,而深拷贝就是增加一个指针并且申请一个新的内存,使这个增加的指针指向这个新的内存,采用深拷贝的情况下,释放内存的时候就不会出现在浅拷贝时重复释放同一内存的错误!

  • 对.NET框架的认识 异常处理

自己定义异常类,异常消息

.Net Framework包括CLR 公共语言运行时和一组统一的类库

C#源代码--->中间语言(IL),通常扩展名为.exe或.dll--->CLR--->本机机器指令

  • truancate和drop区别

truncate 和 delete 只删除数据不删除表的结构
drop 语句将删除表的结构被依赖的约束(constrain)、触发器(trigger)、索引(index);依赖于该表的存储过程/函数将保留,但是变为 invalid 状态。
想删除表,当然用 drop
想保留表而将所有数据删除,如果和事务无关,用truncate即可。
如果和事务有关,或者想触发trigger,还是用delete。

  • oop概念

封装、继承、多态

  • 虚方法与抽象方法

相同:都可以在派生类中重写;
不同点:虚方法在基类中可以有实现的部分,在派生类中可重写也可不重写;

    而抽象方法在基类中没有实现的部分,在派生类中必须重写;

  • 重载 重写

重载就是方法的名称相同,参数的个数或类型不同,进行多次重载以实现不同的需求;
重写就是对基类中函数的重写,为了实现具体的功能;
不同点:1.方法的重写是子类和父类的关系,属于垂直关系;方法的重载是同一个类中方法之间的关系,属于水平关系;
           2.重写只能有一个方法,或者说只能有一对方法产生关系;方法的重载是多个方法之间的关系;
           3.重写要求参数列表相同;重载要求参数列表不同;

  • 值类型和引用类型的区别

所有继承System.ValueType的类型都是值类型,其他类型都是引用类型。
引用类型可以派生出新的类型,而值类型不能。
引用类型存储在堆中,而值类型存储在栈中。
引用类型可以包含null值,值类型不能(可空类型功能允许将 null 赋给值类型)。
引用类型变量的赋值只复制对对象的引用,而不复制对象本身。而将一个值类型变量赋给另一个值类型变量时,将复制包含的值。
当比较两个值类型时,进行的是内容比较;而比较两个引用类型时,进行的是引用比较。
值类型在内存管理方面具有更好的效率,并且不支持多态,适合用作存储数据的载体;引用类型支持多态,适合用于定义应用程序的行为。

  • 用foreach语句遍历数组,找出最大数和最小数
int[] values = { , , , , , , , , ,  };
int max = int.MinValue, min = int.MaxValue;
foreach (int value in values)
{
if (value < min)
min = value;
if (value > max)
max = value;
}
Console.WriteLine("最大数:" + max + ";最小数:" + min);
Console.ReadKey();
  • 抽象类和接口

相同点:1.都不能被实例化,都可以通过继承实现其抽象方法;
           2.都是面向抽象编程的技术基础;
不同点:1.接口支持多继承,也就是说一个类可以实现多个接口;抽象类不能实现多继承;
           2.接口只能定义抽象规则或对象;抽象类即可以定义抽象的,也可以提供一些已经实现的成员或方法;
           3.接口只包含方法、属性、索引器、事件的签名,但却不能定义字段和包含实现的方法;抽象类可以
              定义字段、属性和包含有实现的方法;

daofu的更多相关文章

  1. apicloud 运费计算js+页面

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

随机推荐

  1. 10.16 正式开发stark组件(一)

    2018-10-16 17:26:44 Django MTV  路由配置里面有 反向解析 参考连接:https://www.cnblogs.com/yuanchenqi/articles/762993 ...

  2. day_6.5 py

    Wireshark的使用  2018-6-5 20:16:05 明天学 03

  3. 关于启动VS2012时,提示Web4.0尚未在网络服务器上注册的解决办法!

    VS2012在没有Web服务器上注册的问题,网上有很多博客. 开始我就是遇到这个问题,在网上试了几个办法,确实都还可以.但是相比之下有的需要设置DOS,进行安装.exe. 这种方法其实相比直接安装补丁 ...

  4. 项目()已配置为使用IIS Web服务器,但此计算机上...

    问题:x 就是要将一个项目,配置在IIS上,以前没遇上过这种开发模式啊... 解决方案: 0.如果配置为不使用IIS Web服务器,将Project.csproj中的" <UseIIS ...

  5. Prometheus的架构及持久化

    原文: https://my.oschina.net/go4it/blog/855598 Prometheus是什么 Prometheus是一个开源的系统监控和报警工具,特点是 多维数据模型(时序列数 ...

  6. 安装指定版本的nodejs

    node有一个模块n,是专门用来管理node.js的版本的. 1.安装n模块: npm install -g n 2.升级node.js到最新稳定版 n stable 3.安装指定版本: n v6.1 ...

  7. [No000013B]初识Ildasm.exe——IL反编译的实用工具

    Ildasm.exe 概要: 一.前言: 微软的IL反编译实用程序——Ildasm.exe,可以对可执行文件(ex,经典的控制台Hello World 的 exe 可执行文件)抽取出 IL 代码,并且 ...

  8. python--列表、字典、元组、集合对比

    数据类型# 计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定义不同的数据类型.# a:整形和浮点型(正数和负数)# b:布尔类型(true,fals ...

  9. 【编译原理】c++实现自下而上语法分析器

    写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:ht ...

  10. 2015年蓝桥杯省赛A组c++第4题

    /* StringInGrid函数会在一个指定大小的格子中打印指定的字符串. 要求字符串在水平.垂直两个方向上都居中. 如果字符串太长,就截断. 如果不能恰好居中,可以稍稍偏左或者偏上一点. 下面的程 ...