1 / 12
文档名称:

C基础知识点(附答案).doc

格式:doc   大小:35KB   页数:12
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C基础知识点(附答案).doc

上传人:莫比乌斯 2022/10/25 文件大小:35 KB

下载得到文件列表

C基础知识点(附答案).doc

文档介绍

文档介绍:该【C基础知识点(附答案) 】是由【莫比乌斯】上传分享,文档一共【12】页,该文档可以免费在线阅读,需要了解更多关于【C基础知识点(附答案) 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。C#基础知识点

先是将对象抽出来,构造成一个仿真的环境,然后在这个环境里,把与最终要解决的问题间建立一个方法。 
封装就是用一个框架把数据和代码组合在一起,形成一个对象。遵循面向对象数据抽象的要求,一般数据都被封装起来,也就是外部不能直接访问对象的数据,外部能见到的只有提供给外面访问的公共操作(也称接口,对象之间联系的渠道)。在C#中,类是支持对象封装的工具,对象则是封装的基本单元。 
继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。使用继承而产生的类被称为派生类或者子类,而被继承的类则称为基类、超类或父类。 
多态也是面向对象语言的基本特征之一,是指在程序执行之前无法根据函数名和参数确定调用哪一个操作,而是程序执行过程中,根据实际运行情况动态确定,从而带来编程高度的灵活性。实现多态的方法是使用虚方法。Virtual

值类型包括简单类型、结构体类型和枚举类型,引用类型包括自定义类、数组、接口、委托等。
栈是操作系统分配的一个连续的内存区域,用于快速访问数据。因为值类型的容量是已知的,因此它可存储在栈上。而托管堆是CLR在应用程序启动时为应用程序预留的一块连续内存区,是用于动态内存分配的内存区,引用类型的容量只有到运行时才能确定,所有用堆来存储引用类型。

作为运算符可以创建对象和调用构造函数;
例:Class_TestMyClass=newClass_Test();
例:intmyInt=newint();
作为修饰符可以用于向基类成员隐藏继承成员,实现派生类中隐藏基类的virtual方法,不能和override共存;
作为约束可以在泛型声明中约束可能用作类型参数的参数类型。
集合

集合类:
ArrayList:使用大小可按需动态增加的数组实现IList接口。
BitArray:管理值的压缩数组,该值表示为布尔值,true表示位是打开的(1),false表示位是关闭的(0)。
CaseInsensitiveComparer:比较两个对象是否相等,比较时忽略字符串的大小写。
CollectionBase:为强类型集合提供abstract基类。
Comparer:比较两个对象是否相等,其中字符串比较是区分大小写的。
DictionaryBase:为键/值对的强类型集合提供abstract基类
Hashtable:表示键/值对的集合,这些键/值对根据键的哈希代码进行组织。
Queue:表示对象的先进先出集合
ReadOnlyCollectionBase:为强类型非泛型只读集合提供abstract基类。
SortedList:表示键/值对的集合,这些键值对按键排序并可按照键和索引访问。
Stack:表示对象的简单的后进先出非泛型集合。
C#运算符(is/as)
1、类型检查的效率不一样:
is需要做两次对象的类型检查,而as需要做一次对象类型检查,再加一次null的检查。
2、is的检查规律:
A:检查一个对象是否兼容于其他指定的类型,并返回一个Bool值,如果是目标类型或是其父类型的话就返回为true,否为false。永远不会抛出异常
B:如果对象引用为null,则返回为false,因为没有对象可以检查其类型。
3、as的检查规律:
A:检查对象类型的兼容性,并返回转换结果,如果不兼容则返回null;
B:不会抛出异常;
C:如果结果判断为空,则强制执行类型转换将抛出NullReferenceException异常;
D:用as来进行类型转换的时候,必须是目标类型或者转换目标类型的派生类
4、as运算符只执行引用转换和装箱转换;is运算符只考虑引用转换、装箱转换和取消装箱转换。
5、使用as操作符有如下几点限制
A:不用在类型之间进行类型转化
B:不能应用在值类型数据
#的特点
简洁的语法、面向对象设计、与Web的紧密结合、
完整的安全性与错误处理、版本处理技术、灵活性与兼容性。
#有几种声明关键字?
public,字段、属性和方法均为公开的,不仅类中的其它成员能访问到,还可以通过类的实例访问的到。
private,字段、属性和方法均为私有的,只能被类中的其它成员访问到,不能通过类的实例访问。
protected,包含private特性,而且protected修饰的字段、属性和方法能被子类访问到。
internal,在同一个程序集中和public一样,但是不能被其它程序集访问,而且子类的话,只能被同一个命名空间的子类访问到。
Sealed,密封类不能被继承。密封方法会重写基类中的方法,但其本身不能在任何派生类中进一步重写。当应用于方法或属性时,sealed修饰符必须始终与override一起使用。

="chain";
intstrLength=;

=(0,2)
(起始位置,截取位数);
="hello";
str=();
:(str1,str2)stringstr="你好";
str=("你","他");
属性和变量的区别
属性与成员变量类似,它们都提供数据存储,但属性的功能远比成员变量强大。属性由特殊方法(Get和Set访问器)访问。Get和Set访问器允许在设置或检索属性之后验证属性值、执行其他代码或执行其他任务。
static的作用,用法
static意思是静态,可以修饰类、字段、属性、方法。标记为static的就不用创建实例对象调用了,可以通过类名直接点出来。
static三种用法:
,表示每次重新使用该变量所在方法、类或自定义类时,变量的值为程序这次运行最后一次为变量赋值时的值,这个方法称为静态函数:
privatevoids(){staticinta=1;a++;}
方法第一次调用结束后a在内存内值为2;
方法第二次调用结束后a在内存内值为3;
(函数)前用static修饰,表示此方法为所在类或所在自定义类所有,而不是这个类的实例所有,这个方法称为静态方法。
,说明此类型无法新建实例,简单点说这个类型的方法全是静态方法,这个类里的非静态方法是不能使用的,这个类型称为静态类.
比如C#控制台操作的Cancle类里面的成员就被标记为静态的,。
如果没有标记为静态就要通过创建实例对象来调用,比如说动态字符串StringBuilder就要new一个实例来调用。
ref和out
1、ref传进去的参数必须在调用前初始化,out不必,
2、ref传进去的参数在函数内部可以直接使用,而out不可
3、ref传进去的参数在函数内部可以不被修改,但out必须在离开函数体前进行赋值。
装箱拆箱
装箱是将值类型转换为引用类型;拆箱是将引用类型转换为值类型
利用装箱和拆箱功能,可通过允许值类型的任何值与Object类型的值相互转换,将值类型与引用类型链接起来
例如:
intval=100;
objectobj=val;
(“对象的值={0}",obj);
这是一个装箱的过程,是将值类型转换为引用类型的过程
intval=100;
objectobj=val;
intnum=(int)obj;
("num:{0}",num);
这是一个拆箱的过程,是将值类型转换为引用类型,再由引用类型转换为值类型的过程。
泛型
在泛型类型或泛型方法的定义中,类型参数是一个占位符(placeholder),通常为一个大写字母,如T。在客户代码声明、实例化该类型的变量时,把T替换为客户代码所指定的数据类型。泛型类,如泛型概述中给出的MyList<T>类,不能用作as-is,原因在于它不是一个真正的类型,而更像是一个类型的蓝图。要使用MyList<T>,客户代码必须在尖括号内指定一个类型参数,来声明并实例化一个已构造类型(constructedtype)。这个特定类的类型参数可以是编译器识别的任何类型。可以创建任意数量的已构造类型实例,每个使用不同的类型参数,如下:
MyList<MyClass>list1=newMyList<MyClass>();
MyList<float>list2=newMyList<float>();
MyList<SomeStruct>list3=newMyList<SomeStruct>();
C#回收机制
对象的生命周期:计算对象大小——查找可用内存——初始化对象——使用对象——摧毁对象。CLR会在合适的时候进行执行垃圾回收来释放不再使用的内存。
“重载”与“重写”有什么区别
overload:重载就是在同一个类中,方法名相同,参数列表不同。参数列表不同包括:参数的个数不同,参数类型不同等。
override:说的是两个类继承,子类重写父类的方法,在调用的时候,子类的方法会覆盖父类的方法,也就是会调用子类的方法。在父类中的方法必须有修饰符virtual,而在子类的方法中必须指明override。(方法名称必须相同,参数也要相同)
重写格式:
父类中:publicvirtualvoidMethod(){}
子类中:publicoverridevoidMethod(){}
重写以后,用父类对象和子类对象访问Method()方法,结果都是访问在子类中重新定义的方法,父类的方法相当于被覆盖掉了。子类中为满足自己的需要来重复定义某个方法的不同实现。
重写是发生在父类与子类之间的关系。具体来讲就是子类可以重写父类的现有的方法。它要求子类的方法名称及参数必须与父类完全一致。比如吃饭,父亲可以吃两碗面,孩子同样也是吃面,却只能吃一碗。
重载则主要是发生在同一个类当中的,它通过多个名称相同的方法,但方法参数不相同,或者方法返回类型不相同来加以区别。其中,方法参数不相同包括以下几种情况:参数的个数不相同,参数的类型不相同,参数的对应位置不相同。需要说明的是,重载同样可以应用到父类与子类当中。即子类重载了父类的方法。
理解委托
委托是一种定义方法签名的类型,可以与具有兼容签名的任何方法关联,可以通过委托调用方法。委托用于将方法作为参数传递给其他方法。时间处理程序就是通过委托调用的方法。
数据字典/ArrayList
ArrayList是一种动态数组,,它提供了动态的增加和减少元素,实现了ICollection和IList接口。
关于AppDomain的作用,说几个常用的就行了
AppDomain是什么:当一个程序集被执行时,系统就会自动为其创建一个AppDomain,每一个AppDomain属于某个进程,一个进程内可以有多个AppDomain;每个AppDomain创建时都有个默认的名称,该名称就是加载的程序集的名称()。
同一windows进程内的不同AppDomian之间可以互相共享资源,如:CLR,,地址空间及线程。
程序集在AppDomain中的调用:在同一进程内,如果不同的AppDomain调用同一Assembly会有以下两种情况:
1、会在每个AppDomain中加载该Assembly并为各AppDomain所调用;
2、会在该进程内,不在任何的AppDomain中单据加载该Assembly,然后同一进程内的所有AppDomain都可以对其进行调用。这种方式加载的程序集(Assembly)称为域无关(DomainNeutral)的。
AppDomain和线程的关系式正交的;n<--->n的关系。
注意当AppDomain加载了某个Assembly后就无法将其单独卸载,不过可以讲AppDomain卸载掉。
卸载AppDomain时CLR会卸载当前在该AppDomain执行的所有线程,如果此时在执行非托管代码就可能产生问题,并且改AppDomain中所有的托管对象也会被垃圾回收器强制回收;
AppDomain的孤立性:
1)、一个AppDomain可以独立于其他的AppDomain被卸载掉;
2)、一个AppDomain不能放问其他AppDomain内的Assembly和对象;
3)、若没有发生跨边界的异常抛出,一个AppDomain拥有自己独立的异常管理策略。这也就意味着同一进程内的某一AppDomain发生异常不会影响到其他的AppDomain。
4)、每个AppDomain可以定义独自的程序集代码访问安全策略;
5)、每个AppDomain可以定义独自的规则,以便在CLR加载前定位程序集的位置
=""和stringstr=null有什么区别?
string str = null 是将null赋给栈中的指针(是一个空指针),指向的堆不分配内存空间,而string str = "" 是给它栈中赋一个指针,指向堆里的一个空内存空间。
、接口的理解,你用过没有?在哪用的?
相同点:
(1)都可以被继承
(2)都不能被实例化
(3)都可以包含方法声明
(4)派生类必须实现未实现的方法
区别:
(1)抽象基类可以定义字段、属性、方法实现。接口只能定义属性、索引器、事件、和方法声明,不能包含字段。
(2)抽象类是一个不完整的类,需要进一步细化,而接口是一个行为规范。微软的自定义接口总是后带able字段,证明其是表述一类“我能做。。。”
(3)接口可以被多重实现,抽象类只能被单一继承
(4)抽象类更多的是定义在一系列紧密相关的类间,而接口大多数是关系疏松但都实现某一功能的类中
(5)抽象类是从一系列相关对象中抽象出来的概念,因此反映的是事物的内部共性;
接口是为了满足外部调用而定义的一个功能约定,因此反映的是事物的外部特性
(6)接口基本上不具备继承的任何具体特点,它仅仅承诺了能够调用的方法
(7)接口可以用于支持回调,而继承并不具备这个特点

最近更新

2024年玉龙县幼儿园教师招教考试备考题库带答.. 31页

2024年甘谷县招教考试备考题库含答案解析(夺.. 31页

2024年砀山县幼儿园教师招教考试备考题库带答.. 30页

2024年福建技术师范学院马克思主义基本原理概.. 12页

2024年繁峙县幼儿园教师招教考试备考题库及答.. 30页

2024年苍梧县招教考试备考题库及答案解析(必.. 31页

2024年莘县招教考试备考题库带答案解析(夺冠.. 30页

2024年融水苗族自治县招教考试备考题库附答案.. 31页

2024年西吉县招教考试备考题库及答案解析(必.. 31页

2024年西藏农牧学院马克思主义基本原理概论期.. 12页

2024年贵州电力职业技术学院马克思主义基本原.. 12页

2024年赵县幼儿园教师招教考试备考题库及答案.. 30页

2024年辽源职业技术学院马克思主义基本原理概.. 12页

2024年郑州工业应用技术学院马克思主义基本原.. 12页

2024年重庆三峡职业学院马克思主义基本原理概.. 13页

2024年重庆财经职业学院马克思主义基本原理概.. 13页

2024年锦州医科大学马克思主义基本原理概论期.. 12页

2024年闽西职业技术学院马克思主义基本原理概.. 12页

2024年陆河县幼儿园教师招教考试备考题库带答.. 31页

2024年隆林各族自治县幼儿园教师招教考试备考.. 31页

2024年青海省(13所)马克思主义基本原理概论.. 12页

2024年香港城市大学(东莞)马克思主义基本原.. 13页

2024年麟游县招教考试备考题库带答案解析 31页

2024年黑龙江省政法管理干部学院马克思主义基.. 12页

2025年七台河职业学院单招职业适应性测试题库.. 44页

2025年三门峡职业技术学院马克思主义基本原理.. 12页

网络资源分配近似模型 35页

2025年上海科技大学马克思主义基本原理概论期.. 12页

高密度能量存储材料 36页

2025年中央美术学院马克思主义基本原理概论期.. 13页