进程和线程的区别?
答:进程是操作系统分配资源的基本单位,线程是CPU中的最小单位
winform窗口怎么传递值?
答:form2 f=new form2(string a)直接传递值
定义一个公共方法,get,set一下返回值,第二个窗口取调用这个方法,把值copy过去,第一窗口就可以调用返回的值
什么情况下会使用到linq?
linq可以对XML文件进行查询。
LINQ to XML 是 LINQ 技术的一部分,专门用于处理 XML 数据。它提供了一种统一的语法,使您可以在 C# 代码中编写查询,对 XML 数据进行各种操作,如查找、过滤、修改等。通过 LINQ to XML,您可以以更加直观和灵活的方式处理 XML 数据,而不需要手动解析 XML。
使用多线程的几种方法?
1、继承Thread类,重写run方法来实现多线程
2、继承Runnable接口实现多线程,实现Runnable接口相比继承Thread类来说,具有两大优势:避免单继承带来的局限和可以共享资源等优势
3、通过Callable 和 FutureTask创建线程
4、通过线程池实现多线程
线程池操作方法
创建线池:
ThreadPool.SetMinThreads();设置最小线程数
ThreadPool.SetManThreads();设置最小线程数
提交任务:
ThreadPool.QueuUserWorkItem(方法,参数);
SQL如何优化查询语句
1、尽量避免使用子查询
2、用IN来替换OR
3、尽量不要使用模糊查询
4、禁止不必要的Order By排序
5、不要用* 语句,尽量用字段
6、优化Group By语句
7、优化连表查询
SQL索引失效的原因有哪些
1、不等于(!= 或者<>)导致索引失效
2、is not null无法使用索引
3、模糊查询可能也会导致索引失效
4、OR 前后只要存在非索引的列,都会导致索引失效
抽象类和接口的相同点和不同区别
相同点:
1、不能实例化;
2、包含未实现的方法声明
3、派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员
不同点:
1、接口可以多继承,抽象类不能实现多继承。
2、接口只能定义抽象规则,抽象类既能定义抽象规则也能提供已实现的成员。
3、接口支持回调,抽象类不能实现回调,因为继承不支持。
4、接口不能定义字段和包含实现的方法,抽象类可以定义字段、包含有实现的方法。
5、接口可以作用于值类型和引用类型,抽象类只能作用于引用类型(例如:Struct只能继承接口)。
6、接口多定义对象的行为,抽象类多定义对象的属性。
C#中什么是反射?
反射就是管理程序集,模块,类型的对象,它能够动态的创建类型的实例,设置现有对象的类型或者获取现有对象的类型,能调用类型的方法和访问类型的字段属性。反射最大的好处是在运行时创建和使用类型实例。