ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c#复习(综合问答)

2022-02-07 20:02:07  阅读:142  来源: 互联网

标签:复习 c# 接口 访问 简述 静态 类型 抽象类 问答


1. 结构体的使用场合,以及结构体和类的区别

使用场合:

目标类型只是含有一些数据 或以数据为主;

没有抽象和多级别的对象层次

区别:

结构体是值类型,类是引用类型

结构体不能实例属性或字段的初始值

结构体不能声明默认的构造函数

结构体不支持继承

2. 写出5个值类型,和5个引用类型

值类型:

int float double 结构体struct long

引用类型:

class interface delegate object string 各容器

3. 写出4个访问权限修饰符以及它们的含义

public - 公有的 访问不受限制

internal - 内部的 访问仅限于当前程序集,只有当前工程可以访问

protected - 受保护的 访问仅限于当前类或其派生类

private - 私有的 访问仅限于当前类

protected internal - 内部保护访问。只限于本项目或是子类访问,其他不能访问

4. 什么是装箱,什么是拆箱

装箱:值->引用

拆箱:引用 -> 值

5. 简述静态类的特点

静态类中只能有静态成员,不可以有非静态字段

静态类不能被实例化

静态类在整个项目中,资源共享

在程序结束后,静态资源才会被释放

6. 简述构造函数的特点

创建类的新对象时执行

构造函数的名称与类的名称完全相同

无函数(返回)类型说明, 也没有返回值

可以被重载

7. 抽象类和接口的相同点

都可以被继承

都不能被实例化

都可以包含方法声明

派生类必须实现未实现的方法

8. 抽象类和接口的区别

抽象基类可以定义字段、属性、方法实现。接口只能定义属性、索引器、事件、和方法声明,不能包含字段

抽象类适用于同一系列,并且有需要继承的成员。接口适用于不同系列的类,让其具有相同的行为,这个就考虑使用接口

接口解决了类不能多继承问题,一个类只能继承自一个类(抽象类),但是可以同时实现多个接口

接口类中不能有实现成员,而抽象类中可以有未实现成员也可以有实现的成员

接口中未实现的方法必须在子类中[实现],抽象类中未实现的方法必须在子类中[重写]

接口可以作用于值类型(struct)和引用类型,抽象类只能作用于引用类型

9. 简述队列、栈和链表的特点

先进先出

后进先出

通过指针指向下一个节点,内存不连续

10. 

a) 通过下标访问数组元素的时间复杂度是?

O(1)

b) 遍历数组查找元素的时间复杂度是?

O(n)

c) 简述在数组中插入元素的最好和最坏情况,以及它们的时间复杂度

插在开头 O(n)

插在末尾 O(1)

11. 简述重载(overload)和重写(override)的区别

静态多态,相同函数名参数类型或者个数不同;

动态多态,重写基类的函数,在子类中有不同实现。

12. 简述委托和事件的定义

可以将方法当作另一个方法的参数来进行传递

一个进行封装的委托类型变量

13. 如何手动释放堆区内存?

将引用类型对象赋值null

手动调用GC

14. 请补完以下单例模式的类

public class Single{

private static Single Instance;

private Single () { }

public static Single Instance

        {

            get

            {

                if (instance == null)

                {

                    instance = new Single ();

                }

                return instance;

            }

        }

}

15. 请简述一下快速排序的逻辑

未完待续...

标签:复习,c#,接口,访问,简述,静态,类型,抽象类,问答
来源: https://blog.csdn.net/Erenlui/article/details/122813441

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有