随笔分类 -  NET面试题目

摘要:一、前言 装箱(boxing)和拆箱(unboxing)是C#类型系统的核心概念.是不同于C与C++的新概念!,通过装箱和拆箱操作,能够在值类型和引用类型中架起一做桥梁.换言之,可以轻松的实现值类型与引用类型的互相转换,装箱和拆箱能够统一考察系统,任何类型的值最终都可以按照对象进行处理. C#语言中 阅读全文
posted @ 2022-07-30 12:45 码农阿亮 阅读(200) 评论(0) 推荐(0) 编辑
摘要:前言 任何有经验的.NET开发人员都知道,即使.NET应用程序具有垃圾回收器,内存泄漏始终会发生。并不是说垃圾回收器有bug,而是我们有多种方法可以(轻松地)导致托管语言的内存泄漏。 内存泄漏是一个偷偷摸摸的坏家伙。很长时间以来,它们很容易被忽视,而它们也会慢慢破坏应用程序。随着内存泄漏,你的内存消 阅读全文
posted @ 2022-07-30 09:46 码农阿亮 阅读(570) 评论(0) 推荐(0) 编辑
摘要:要了解值类型和引用类型,我们首先要知道堆和栈的区别: ① 栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义;堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小 ②存放在栈中时要管存储顺序,保持着先进后出的原则,它是一片连续的内存域,由系统自动 阅读全文
posted @ 2022-07-30 09:34 码农阿亮 阅读(32) 评论(0) 推荐(0) 编辑
摘要:前言 在C#编程中,由于存在类型之间的强制转换,很容易会出现所谓的类型可变性说法,存在协变、逆变、不变三种。 如果创建了泛型类型的实例,编译器会接受泛型类型声明以及类型参数来创建构造类型。但是在日常使用过程中,我们可能会将派生类型分配给基类型的变量,有时候会出现错误。 这里就存在一个赋值兼容性问题。 阅读全文
posted @ 2022-07-30 09:14 码农阿亮 阅读(76) 评论(0) 推荐(0) 编辑
摘要:C#中类和接口的区别 一、抽象类 抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则 阅读全文
posted @ 2021-06-02 11:19 码农阿亮 阅读(890) 评论(0) 推荐(0) 编辑
摘要:线程同步基础知识点 1.原子操作(Interlocked):所有方法都是执行一次原子读取或一次写入操作。2.lock()语句:避免锁定public类型,否则实例将超出代码控制的范围,定义private对象来锁定。3.Monitor实现线程同步 通过Monitor.Enter() 和 Monitor. 阅读全文
posted @ 2021-05-25 13:46 码农阿亮 阅读(55) 评论(0) 推荐(0) 编辑
摘要:const和static的区别 一、const 1.static 局部变量 将一个变量声明为函数的局部变量,那么这个局部变量在函数执行完成之后不会被释放,而是继续保留在内存中2.static 全局变量 表示一个变量在当前文件的全局内可访问3.static 函数 表示一个函数只能在当前文件中被访问4. 阅读全文
posted @ 2021-05-17 16:19 码农阿亮 阅读(4753) 评论(0) 推荐(0) 编辑
摘要:C#中In、Out和Ref的区别 简介: In:过程不会改写In的内容 ,默认的传递方式,即向函数内部传送值。Out和out:传入的值不会被过程所读取,Out在传入的时候,参数的数值会清空,但过程可以写 。只出不进ref:可以把参数的数值传递进函数 ,过程会读,会写 。有进有出。 一、In In 关 阅读全文
posted @ 2021-05-17 11:53 码农阿亮 阅读(838) 评论(0) 推荐(0) 编辑
摘要:C#中Abstract和Virtual的区别 简介: c#中Abstract和Virtual比较容易混淆,都与继承有关,并且涉及override的使用。virtual可以被子类重写,而abstract必须被子类重写。virtual修饰的方法必须有实现(哪怕是仅仅添加一对大括号),而abstract修 阅读全文
posted @ 2021-05-17 09:35 码农阿亮 阅读(579) 评论(0) 推荐(0) 编辑