随笔分类 - C#
摘要:前言: 谈起构造函数,从C++开始,就开始接触了。然而前几天见到C#中的静态构造函数问题,还是感觉相对陌生,遂再来看一看。解析: 先看代码,演示构造函数的使用情况:[代码] 对于调试结果,居然为: 为什么呢?中间肯定有问题,或者所不曾清晰地规律。原来问题在于 静态构造函数 上。 解析: 原来静态构造函数,只在加载类时执行一次,即使实例化多个对象,其也至多执行一次,且是在实例化对象,或类使用其中成...
阅读全文
摘要:前言: 有一题:产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。 之前一直做不出结果,认为是中间循环太多,陷入无限等待呢?!后来发现是Random函数理解有误。解析: 代码演示:[代码]是啊,原来问题出在了如此小的细节上,这才发现“多总结,多思考,多注意细节!”是多么的重要啊。
阅读全文
摘要:前言: 枚举类型,由于不太常用,所以掌握其实并不熟练。然而今天见一枚举题,感觉有点意思,遂记录一下。解析: 先见代码:[代码]顺理成章的,得到调试结果为:由以上代码,我注意到三点:1.typeof的应用:这个是为了得到Type类型的对象,在反射环节已经略有了解;2. Enum.GetValues(typeof(Color))获取枚举各项对应值时,因为是得到Array类型的。然而很意外的是,我居...
阅读全文
摘要:前言: 之前看过Anytao的《你必须知道的.NET》,其中有一章专门介绍Is 和 As 之惑的文章,当时感觉比较简单,就过去了。然而由上一篇博文《选取页面全部TextBox,并赋值的两种方法——从服务器端和JS实现》中再次用到了 Is 关键字(见下代码),然而却感觉印象模糊,所以在此复习之。[代码] 对于它们的用法,印象只停留在之前在项目《员工假勤管理系统中》,为了保存...
阅读全文
摘要:前言: 在含有汉字的字符串中,如何有效截取(根据提供字节数)。例如:针对输入的字符串,根据所提供字节数,截取前一部分。如果截止字符为字母,则保留。如果为汉字的前一字节,则向前退一字节取。ex:"我是ABB" 6,结果为"我是AB";"我是ABB么" 8,结果为"我是ABB"。 因为并没有指定语言(C、C#)。我们假设只有汉字和字母构成。 如果用C的话,这将是一道常规题(除了对汉字的处理以外)。...
阅读全文
摘要:前言: 今天又见到了老问题,在C#中访问修饰符的作用范围有哪些? 我的回答是:i)当修饰类中成员函数时:private :只能被类中使用;public :能够在类内部以及类外部使用;protected :可以在类内部及派生类中使用,雷同于private;internal :可以在程序集中使用,雷同于public ;ii)当修饰类时:public :可以在类外,进行类的实例化;private :不可...
阅读全文
摘要:前言: 在博文《接口包含内容概述1——接口相关概述及接口中属性的实现》和《接口包含内容概述2——委托与事件之惑》中,对接口中的属性以及事件的实现做了基本描述, 今天就接口中可以包含的另一部分内容、也是我不太熟悉的内容——索引器的概括以及在接口中的实现做一说明。索引器的概述: 索引器(indexer)是类中相当特殊的一类成员,...
阅读全文
摘要:前言: 上篇博文《接口包含内容概述1——接口相关概述及接口中属性的实现》最后留有一疑问:一个接口为什么可以包含一个事件,却不能包含一个委托呢? 在这里要想对这个问题解答,首先必须搞清楚委托和事件这两个容易使人眩晕的问题:委托概述: 在 C 语言 的众多种类型指针中,有一种叫做“函数指针”,即是指函数的入口地址。在 C# 中委托的概念与其相类似。而与...
阅读全文
摘要:前言: 临近年终,和一朋友去应聘,偶见一C#选择题,问道:接口中不能包含什么?答案有:方法,属性,事件,字段。(我比较确定,应该选择字段,然而对于其确切原因却不能详述。这两天看到Steven John Metsker 的《C# 设计模式》中讲到“接口型模式设计”时,详细讲述了接口,以及接口中内容 。在此借助其讲述,将其做一概要。接口和抽象类: 为了更好的理解接口,最常见的...
阅读全文
摘要:在继承和多态中的内存分配机制: 继承、封装和多态是面向对象的三大支柱要素,也是C#语言中最为重要的概念。在这里无意具体讲解他们的意义、使用方法等,只是想通过具体实例,从它们的内存分配,以期理解其运行机制,从而对继承和多态概念有深层次的理解。 这里节选Anytao的《你必须知道的.NET》之继承本质论中示例代码和演示图片,加以说明: [代码]当运行代码为:[代码]由我们上文所论述的:自定义对象的...
阅读全文
摘要:String对象和值类型的内存分配机制: 同样由前延伸,上上篇《由String类型分析,所产生的对参数传递之惑的解答》中,最后提及,如果将引用类型的按值传递和按引用传递,用托管堆表示,则更具说服力。在此附图说明:(如果印象模糊,可回看文章)由上两图可以看到:1.在图1(即上面图),当在按值传递引用类型参数时,接收参数的函数中(注意:依然在Stack上),依然存在一份拷贝——...
阅读全文
摘要:用Ref和Out关键字的按引用传递比较分析: 由上文《由String类型分析,所产生的对参数传递之惑的解答》 文,我们对值类型和引用类型,在用以关键字Ref传参时,所产生的可以导致原变量实现改变的结果进行了原因分析。然而用关键字Out的按引用传递(注:文中所说的"按引用传递",从英文翻译对号入座应为Ref,然而此处为了表示在传递时都传递的是参数的地址这一共性,故此处把按Ref关键字和按Out关键...
阅读全文
摘要:String 类型分析概要: String 是C#语言中用处最广的一种类型。然而其惯有的使用方法(ex,+、=、== etc.),很容易给人的错觉就是:它和其它值类型(ValueType,ex,int,float,double etc.)是一样的!然而由我的——《JavaScript浅析1——类型》中对JS中的String类型做了一定分析。然而在C...
阅读全文

浙公网安备 33010602011771号