第一章

1、公共语言架构(CLI)由哪几部分组成?

(1)通用类型系统:定义了一套类型系统的框架,规定了数据类型的声明、使用和管理方法。

(2)公共语言规范:一组语言规则的集合

(3)通用中间语言:一种中性的、与处理器无关的指令语言

(4)其他通用的标准化文档、协议、规范等。

2、CLI的主要功能是什么?

(1)管理代码的执行。各类.NET应用程序的代码被编译为通用的中间语言。

(2)提供系统服务,以保证程序运行的可能性,由CLR对程序执行细节进行封装,开发人员就可以专注于程序的业务逻辑和功能流程,大大降低了开发难度,提高开发效率。

3、什么是托管代码?什么是非托管代码?

(1)满足公共语言要求,基于CLI编译和运行的程序代码被称为托管代码

(2)非托管代码是指直接编译成目标计算机的机器码,必须自己提供垃圾回收机制、类型检查机制和安全支持等服务。

   区别:编译运行过程不同,跨平台性不同,运行性能不同。

4、C#语言代码经编译后生成的是什么代码?

  中间语言代码。

5、什么是命名空间?什么是程序集?

(1)命名空间是C#代码的基本组织形式,成员必须属于类型,类型又必须属于命名空间,一个命名空间还可以嵌套在另一个命名空间中。

(2)程序集是应用程序的基本组织单元,除了可执行文件(.exe)外,动态链接库(dll)也是另一种常见的程序集程序。

6、C#程序的执行过程?

  程序一开始就执行main方法,同时执行main方法里的方法,直到main方法执行完。

第二章

1、简单值类型有哪些?复合值类型有哪些?区别是什么?

(1)简单值类型可以再细分:整数、字符、实数和布尔类型;

(2)复合类型是简单类型的复合,它包括结构和枚举;

(3)区别:复合值类型是是简单值类型的复合

2、引用类型有哪些?如何定义?

(1)引用类型包括类、数组、接口、委托、字符串等。

(2)定义:引用类型是从基本类型里构造而来的类和其他复杂数据类型组成的,这种类型的变量并不包括类型的实例,而是包括对实例的引用。类:使用class关键字定义;数组:一维数组类型的表示是元素类型加一对双括号,如int[]多维数组的定义通过中括号里的逗号来划分数组的维数,如int[] a = new int[1,2];接口:泛指实体把自己提供给外界的一种抽象化物,用以由内部操作分离出外部沟通方法,使其能被修改而不影响外界其他实体与其交互方式;委托:将一个方法/函数封装成一个值进行传递;字符串:放在一对双引号里,是对一组字符的封装,字符串中定义完成以后就是只读的。

3、如何进行数组定义和初始化?(以一维数组为例)

(1)定义:元素类型加上一对中括号

(2)初始化:

   string []arrayA = {"a","b"};

   int[] arrayB;

   arrayB = new int[3]{1,2,3};

4、值类型和引用的区别?

(1)值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针或者引用;

(2)值类型继承自System.ValueType,引用类型继承自System.Object

(3)值类型存取速度快,引用类型存储速度慢

(4)值类型的变量直接存储数据,而引用类型的变量持有的是数据的引用,数据存储在堆中;

(5)值类型在内存管理方面具有更好的效率,并且支持堕胎,适合用于存储数据的载体,引用类型支持多态,适合用于应用程序的行为;

(6)引用类型可以派生出新的类型,而值类型不可以

5、为什么要进行类型转化?什么是显示转换?什么是隐式转换?类型转换的基本规则?

(1)当传递参数与所需参数类型不一致时,就需要进行类型转换。

(2)显示转换:显示转换又叫强制类型转换,它需要明确指定转换类型。

(3)隐式转换:它不需要明确指定转换类型

(4)数值类型转换基本规则:从低精度类型到高精度类型可以进行隐式转换,相反则需要手动进行显示转换,总精度相同的无符号数值类型向有符号数值类型转换也是显示转换。引用类型转换规则:从派生类到基类可以进行隐式转换,从基类到派生类只能进行显示转换,且不一定成功。如果转换成功,那么两个变量将指向同一个对象;装箱过程是从值类型到引用类型的隐式转换,其中包括任何值类型到Object类型的转换以及从一个值类型到它所实现的接口类型转换。拆箱的过程和装箱过程和装箱过程正好相反,它实现了从引用类型到值类型的显示转换,其中包括Object类型到任何值类型的转换,以及从某个接口类型到继承该接口的某个值类型的转换。

第三章

1、什么是实例字段、静态字段?怎样访问它们?

(1)实例字段:在类或结构中定义的一般数据成员,属于类或结构的单个对象。访问:圆点连接符前面加上对象具体名称

(2)静态字段:在字段定义时前面前面加上一个static关键字,属于类或结构的所有字段

(3)访问方法:圆点连接符前面加上类型名称

2、什么是静态字段、只读字段?常数字段怎么初始化?

保存一些不发生变化的数值,使用const关键字修饰的字段叫做常数字段;常数字段在初始化的时候必须赋值,且赋的值必须是一个常量。

3、方法的引用参数与值类型参数的本质区别?输出型参数的特点?数组型参数怎么定义和使用?实参为数组的变量和一组变量的区别?

4、委托的本质是什么?怎么使用委托?

委托的本质是将一个方法或者函数封装成一个值进行传递

定义:委托的定义类似方法的签名,不过前面需要加上一个delegate关键字。

5、访问限制的种类和基本的使用规则?

(1)public修饰符:表示成员是共有的,无论在哪里都可以进行访问

private修饰符:成员是私有的,只有在类型内部进行访问

protected修饰符:成员是保护的,只能被当前类及派生类的方法成员访问

internal修饰符:表示可在程序集内部访问, 即可通过当前类型或者同一程序集中和其它类型访问,而不允许其它程序集的类型访问。

(2)对类型在而言,派生类的访问限制不能低于基类的访问限制,对类型成员而言,字段的访问的限制不能低于其类型的访问级别;方法的访问限制级别也不能低于其方法参数类型的访问级别,如果一个类型是嵌套在另一个类型中,那么内部类型的访问级别不能高于外部类型。

第四章

1、double型变量x和y的取值分别为12.5和5.0,那么表达式x/y+(int)(x/y)-(int)x/y的值是多少?

x/y=12.5/5.0=2.5

(int)(x/y)=(int)(2.5)=2

(int)x/y=12/5.0=2.4

x/y+(int)(x/y)-(int)x/y = 2.5+2-2.4=2.1

2、int型变量x的值为9,那么表达式(x--+x--+x--)和表达式(--x+--x+--x)的值分别是多少?

x--+x--+-- = 9+8+7=24,先取x的值

--x+--x+--x = 8+7+6=21,先x减1

3、bool型变量a和b的取值分别为true和false,那么表达式a&&(a||b)和a||(a&&!b)的值分别是什么?

(1)true&&(true||false)为true

(2)true||(true&&!false)为true

4、as类型转换操作与is类型操作有何不同?和一般类型转换有何不同?

as是一个二元的类型转换符,与is不同的是as只能进行引用类型的转换或装箱转换,而不能在两个值类型之间进行转换

C#复习题(概念) --C#学习笔记的更多相关文章

  1. 时间序列算法(平稳时间序列模型,AR(p),MA(q),ARMA(p,q)模型和非平稳时间序列模型,ARIMA(p,d,q)模型)的模型以及需要的概念基础学习笔记梳理

    在做很多与时间序列有关的预测时,比如股票预测,餐厅菜品销量预测时常常会用到时间序列算法,之前在学习这方面的知识时发现这方面的知识讲解不多,所以自己对时间序列算法中的常用概念和模型进行梳理总结(但是为了 ...

  2. mysql之数据库基本概念(mysql学习笔记一)

    数据库系统   数据库管理系统(DBMS)+数据库(DATABASE)(+数据库管理员) DBS=dbms+db 定义: 大量信息进行管理的高效解决方案,按照数据结构来组织.存储和管理数据的仓库 关系 ...

  3. lua中的闭包概念的学习笔记

    1.闭包的由来: 个人理解,lua中之所以出现闭包的概念,完全是因为lua中允许函数的嵌套定义,并且在内嵌函数中使用了外包函数中定义的局部变量,例如c.c#就不允许函数的嵌套定义(但是允许函数的嵌套调 ...

  4. USB驱动程序之概念介绍学习笔记

    现象:把USB设备接到PC 1. 右下角弹出"发现android phone" 2. 跳出一个对话框,提示你安装驱动程序 问1. 既然还没有"驱动程序",为何能 ...

  5. 2019-11-7:sql注入防御,webshell概念,学习笔记

    sql注入防护GPC,magic_quotes_gpc函数在php中的作用是判断解析用户提示的数据,如包括有:post.get.cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特 ...

  6. Kubernetes全栈架构师(基本概念)--学习笔记

    目录 为什么要用Kubernetes? K8s控制节点-Master概念 K8s计算节点-Node概念 什么是Pod? 为什么要引入Pod? 创建一个Pod 零宕机发布应用必备知识:Pod三种探针 零 ...

  7. 【视频编解码·学习笔记】6. H.264码流分析工程创建

    一.准备工作: 新建一个VS工程SimpleH264Analyzer, 修改工程属性参数-> 输出目录:$(SolutionDir)bin\$(Configuration)\,工作目录:$(So ...

  8. javascript学习笔记(四) Number 数字类型

    数字格式化方法toFixed().toExponential().toPrecision(),三个方法都四舍五入 toFixed() 方法指定小数位个数  toExponential() 方法 用科学 ...

  9. SharpGL学习笔记(七) OpenGL的变换总结

    笔者接触OpenGL最大的困难是: 经常调试一份代码时, 屏幕漆黑一片, 也不知道结果对不对,不知道如何是好! 这其实就是关于OpenGL"变换"的基础概念没有掌握好, 以至于对& ...

随机推荐

  1. NOIP 车站分级 (luogu 1983 & codevs 3294 & vijos 1851) - 拓扑排序 - bitset

    描述 一条单向的铁路线上,依次有编号为 1, 2, ..., n 的 n 个火车站.每个火车站都有一个级别,最低为 1 级.现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟车次停靠了火车 ...

  2. 01 Hello World!

    from tkinter import Label#获取组件对象 widget=Label(None,text='Hello GUI world!')#生成 widget.pack()#布置 widg ...

  3. Cmder + Babun 打造 Windows 好用的终端工具

    Babun a windows shell you will love Babun features the following: Pre-configured Cygwin with a lot o ...

  4. centos6配置网络常见问题

    1. 启用网卡 查看网卡模块: lsmod 移除网卡:modprobe -r e1000 装载网卡: modprobe e1000 2. 配置网络 vim /etc/sysconfig/network ...

  5. ZOJ 3962 Seven Segment Display(数位DP)题解

    题意:给一个16进制8位数,给定每个数字的贡献,问你贡献和. 思路:数位DP,想了很久用什么表示状态,看题解说用和就行,其他的都算是比较正常的数位DP. 代码: #include<iostrea ...

  6. 题解——CF Manthan, Codefest 18 (rated, Div. 1 + Div. 2) T1(找规律)

    就是找一下规律 但是奈何昨天晚上脑子抽 推错了一项QwQ 然后重新一想 A掉了QwQ #include <cstdio> #include <algorithm> #inclu ...

  7. 论文笔记:Variational Capsules for Image Analysis and Synthesis

    Variational Capsules for Image Analysis and Synthesis  2018-07-16 16:54:36 Paper: https://arxiv.org/ ...

  8. (转) The Incredible PyTorch

    转自:https://github.com/ritchieng/the-incredible-pytorch The Incredible PyTorch What is this? This is ...

  9. 第一章(欢迎进入node.js世界)

    本章内容 1:Node.js是什么 2:服务器端javascript 3:node的异步和事件触发本质 4:node为谁而生 5:node程序示例 1.1 node.js他的首次亮相是在2009年,非 ...

  10. Google advertiser api开发概述——批量处理

    批处理 大多数服务都提供同步 API,要求您发出请求然后等待响应,但 BatchJobService 允许您对多项服务执行批量操作,而无需等待操作完成. 与各服务的特定 mutate 操作不同,Bat ...