总结总结再总结

突然发现很多东西看过一遍后其实没有印象,必须总结总结再总结:

1 C#中 属于引用类型的是?A

A string B double C int D enum

说明:string 是引用类型,不是值类型

值类型:
单元直接存放“有效值”
如:
int a=3;
则a内存单元就放的是3

引用类型:
单元放的是另外一个对象的引用(地址)
如:
Form form1=new Form();
就是说,在内存中开辟了一个对象new Form(),form1内存单元存放的是那个对象的地址,并非对象本身

2 C#的语句输出结果

Double myVal=0.2;

Console.WriteLine("{0:#%}",myVal) ; B吧。。没啥说的

A 0.2% B 20% C {0:#%} D #%

3关于结构和类,说法正确的是:A

A 结构的成员默认public 类的成员默认private;

B 结构和类都是引用类型;

C 结构不能实现接口,类可以;

D 结构和类的静态属性都可以初始化;

说明:结构的成员默认public 类的成员默认private

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

结构体与类都能够实现接口

如图

值类型

C#的所有值类型均隐式派生自System.ValueType:

* 结构体:struct(直接派生于System.ValueType);
o 数值类型:
+ 整型:sbyte(System.SByte的别名),short(System.Int16),int(System.Int32),long(System.Int64),byte(System.Byte),ushort(System.UInt16),uint(System.UInt32),ulong(System.UInt64),char(System.Char);
+ 浮点型:float(System.Single),double(System.Double);
+ 用于财务计算的高精度decimal型:decimal(System.Decimal)。
o bool型:bool(System.Boolean的别名);
o 用户定义的结构体(派生于System.ValueType)。
* 枚举:enum(派生于System.Enum);
* 可空类型(派生于System.Nullable<T>泛型结构体,T?实际上是System.Nullable<T>的别名)。

引用类型

C#有以下一些引用类型:

* 数组(派生于System.Array)
* 用户用定义的以下类型:
o 类:class(派生于System.Object);
o 接口:interface(接口不是一个“东西”,所以不存在派生于何处的问题。Anders在《C# Programming Language》中说,接口只是表示一种约定[contract]);
o 委托:delegate(派生于System.Delegate)。
* object(System.Object的别名);
* 字符串:string(System.String的别名)。

可以看出:

* 引用类型与值类型相同的是,结构体也可以实现接口;
* 引用类型可以派生出新的类型,而值类型不能;
* 引用类型可以包含null值,值类型不能(可空类型功能允许将 null 赋给值类型);
* 引用类型变量的赋值只复制对对象的引用,而不复制对象本身。而将一个值类型变量赋给另一个值类型变量时,将复制包含的值。

结构和类的静态属性哪个可以初始化?这个始终不懂,望高人指点。

在C#中类和结构的区别

1. 值类型与引用类型 
(1)结构是值类型:值类型在堆栈上分配地址,所有的基类型都是结构类型,例如:int 对应System.int32 结构,string 对应 system.string 结构 ,
通过使用结构可以创建更多的值类型 

(2)类是引用类型:引用类型在上分配地址,堆栈的执行效率要比堆的执行效率高,可是堆栈的资源有限,不适合处理大的逻辑复杂的对象。所以结构处理作为基类型对待的小对象,而类处理某商业逻辑。因为结构是值类型所以结构之间的赋值可以创建新的结构,而类是引用类型,类之间的赋值只是复制引用

  注:   

a.虽然结构与类的类型不一样,可是他们的基类型都是对象(object),c#中所有类型的基类型都是object  
b.虽然结构的初始化也使用了New 操作符可是结构对象依然分配在堆栈上而不是堆上,如果不使用“新建”(new),那么在初始化所有字段之前,字段将保持未赋值状态,
且对象不可用
2.继承性 (1)结构:不能从另外一个结构或者类继承,本身也不能被继承,虽然结构没有明确的用sealed声明,可是结构是隐式的sealed .
(2)类:完全可扩展的,除非显示的声明sealed 否则类可以继承其他类和接口,自身也能被继承 

注:虽然结构不能被继承 可是结构能够继承接口,方法和类继承接口一样 
3.内部结构: (1)结构:
没有默认的构造函数,但是可以添加构造函数
没有析构函数 没有 abstract 和 sealed(因为不能继承)
不能有protected 修饰符 可以不使用new 初始化 在结构中初始化实例字段是错误的 (2)类:
有默认的构造函数    有析构函数    可以使用 abstract 和 sealed    有protected 修饰符    必须使用new 初始化
4.如何选择结构还是类 

  讨论了结构与类的相同之处和差别之后,下面讨论如何选择使用结构还是类:

1. 堆栈的空间有限,对于大量的逻辑的对象,创建类要比创建结构好一些
2. 结构表示如点、矩形和颜色这样的轻量对象,例如,如果声明一个含有 1000 个点对象的数组,则将为引用每个对象分配附加的内存。在此情况下,结构的成本较低。   
3. 在表现抽象和多级别的对象层次时,类是最好的选择   
4. 大多数情况下该类型只是一些数据时,结构时最佳的选择 

4 那个关于接口的描述是错误的 选A

接口包含方法和属性,但不包含事件;

接口不包含方法的实现;

一个类可以实现多个接口;

继承接口的任何非抽象类型都必须实现接口的所有成员;

说明:接口包含方法和属性,也包含事件

接口具有下列属性:

  • 接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。

  • 不能直接实例化接口。

  • 接口可以包含事件、索引器、方法和属性。

  • 接口不包含方法的实现。

  • 类和结构可从多个接口继承。

  • 接口自身可从多个接口继承。

5 那些运算符属于右结合?选C吧 没啥说的

位移运算符 《 》

一元运算符++

元运算符new

赋值运算符;

6 下面哪个说法错误?选B

类不可以多重继承 接口可以

一个类可以有多个基类和多个基接口

抽象类自身可以定义成员接口不可以

抽象类和接口都不可以实例化

说明:一个类只能有一个基类和多个基接口

就先整理到这里,明天继续。。

转载于:https://www.cnblogs.com/FlyYang/archive/2008/10/21/1316168.html

方正阿帕比的笔经-C#基础概念相关推荐

  1. 方正阿帕比,在Ultimus平台上生产管理数字产品

    北京 -2008-09-5日前,国内技术领先及市场份额最大的数字图书提供商北京方正阿帕比技术有限公司与Ultimus 核心代理商敏照科技成功签约.作为一家IT背景的公司,方正阿帕比公司在选择IT应用系 ...

  2. 2011-3-8下午方正阿帕比笔试面试

    笔试题里面选择题很多,尤其是多选,基本忘了,有点懵.考察.net原理和web的知识居多,做得不是很好.印象比较深的有正则表达式和ref与out关键字,以及abstract类的理解. 问答题第一个是一个 ...

  3. 《有效成交量分析法》(威廉•帕斯卡尔)一、有效成交量概念的提出

    本人是炒股爱好者,上班时间业余炒股.也会用delphi编程.这几年总的来说没赔没赚.现在年龄大了,有点厌倦上班了,想为自己退休生活找点事干,就决定在股市里下功夫挣钱.毕竟这行业可以在家挣钱.为此专门上 ...

  4. 语言怎么把横的光标变成竖的_想练字,先会学会控笔吧!基础都不牢,怎么练招式?...

    请先思考这几个问题:盖房打地基,为什么不直接建?唱歌要练声,为什么不直接唱?弹琴练指法,为什么不直接弹?学走路先练爬,为什么不直接跑?练武术先练体能,为什么不直接练招数?-- 很多人练字没效果,我在这 ...

  5. C/C++笔试题(基础题)

    为了便于温故而知新,特于此整理 C/C++ 方面相关面试题.分享,共勉. (备注:各题的重要程度与先后顺序无关.不断更新中......欢迎补充) (1)分析下面程序的输出(* 与 -- 运算符优先级问 ...

  6. ZBrush 笔刷的基础参数

    ZBrush®中的笔刷基本参数主要包括3个:Draw Size(绘制大小).Focal Shift(焦点衰减)和Z Intensity(深度强度),通常使用这3个基本参数对笔刷进行调整. 在视图文档区 ...

  7. 计算机应用基础五笔试题,计算机应用基础必考题「附答案」

    一.多项选择题 1.计算机安全包括(ABC) A.实体安全 B.信息安全 C.运行安全 D.人员安全 E.外部设备安全 2.下列汉字输入法中,有重码的是(ABDE) A.五笔码 B.全拼码 C.区位码 ...

  8. c malloc 头文件_C/C++笔试题:主要考察C/C++语言基础概念算法及编程,附参考答案...

    1.编写my_strcpy函数,实现与库函数strcpy类似的功能,不能使用任何库函数: 答:char *strcpy(char *strDest, const char *strSrc) { if ...

  9. Java校招笔试题-Java基础部分(七)

    导语   Java 面试题集2021版 Java基础部分七 73.Set 和List的区别? 74.集合框架中Collection 和Arrays 类的作用 75.TreeSet 里面放对象,如果同时 ...

最新文章

  1. 吊打一切现有开源OCR项目!90% +准确率,训练部署一条龙
  2. oracle 存储过程的基本语法 及注意事项
  3. centos 安装pm2
  4. 斯诺登的密码(洛谷-P1603)
  5. 关闭窗口(window.close)
  6. w7设置双显示器_怎么在windows7系统下设置双显示器
  7. Debug:cuda error gcc 版本过高不支持
  8. MySQL入门:如何创建数据库?
  9. C#初学者教程系列3:Hello World:第一个控制台应用程序
  10. 论现场跟客户演示软件产品
  11. RK3399 USB RNIDS/gagnet实战
  12. vue项目启动后,页面显示空白
  13. 【周五松土】私家萝卜与坑
  14. 那个单位用计算机系统冷却,消防知识100题
  15. 微博相册图片获取工具
  16. Python-illegal multibyte sequence
  17. python字符分割垂直投影法_Python实现投影法分割图像示例(一)
  18. 有关计算机的介绍英语,与计算机有关的英语(国外英文资料).doc
  19. 量化分析入门7:获取多支股票的收盘价
  20. Mac 解压缩rar文件

热门文章

  1. OpenLayers4加载天地图WMTS注意事项
  2. 信工实验参考——《通信原理实验1——话音信号的PCM编译码综合实验》
  3. echars地图---显示到乡镇街道级别
  4. 计算机教室外显标牌,幼儿园如何美化区角标示牌?
  5. c语言题目关于欧姆定律,求有关欧姆定律的练习题
  6. Unity:素材下载
  7. 计算机大赛电子杂志,信息科学与工程学院举办首届电子杂志设计大赛
  8. java -jar命令详解
  9. linux每个进程的地址空间大小,别再说你不懂 Linux 内存管理了,10 张图给你安排的明明白白...
  10. 最全php学习路线图,从入门到大牛