随笔分类 - C#
摘要:前言本文个人同步博客地址http://aehyok.com/Blog/Detail/76.html个人网站地址:aehyok.comQQ 技术群号:206058845,验证码为:aehyok本文文章链接:http://www.cnblogs.com/aehyok/p/3946286.html感谢您的...
阅读全文
摘要:本人个人博客原文链接地址为http://aehyok.com/Blog/Detail/66.html。个人网站地址:aehyok.comQQ 技术群号:206058845,验证码为:aehyok本文文章链接:http://www.cnblogs.com/aehyok/p/3946286.html感谢...
阅读全文
摘要:前言 本节主要是来了解学习集合,以方便在程序编写时,什么地方该选用什么集合,让程序更健壮的运行起来。在学习了解集合之前,首先需要了解一些数据结构方面的知识。下面我们就先简单的来看一下数据结构。数据结构 数据结构就是相互之间存在一种或多种特定关系的数据元素的集合。 程序界有一点很经典的话,程序设计...
阅读全文
摘要:前言 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。这个字...
阅读全文
摘要:前言 IEnumerable、IEnumerator到现在为止对这两个接口还是不太理解,不理解但是自己总是想着试着要搞明白,毕竟自己用的少,所以在此先记录一下。以备自己日后可以来翻查,同时也希望园子里的大牛们,来帮我看看理解的怎么样。查看并使用两个接口 接下来我们先来看看两个接口的定义。 先来看一下IEnumerable接口,其实看过这个接口之后,发现它其实是非常的简单,只包含一个方法GetEnumerator(),它返回一个可用于循环访问集合的IEnumerator对象,如下面截图所示:这里的IEnumerator对象,其实就是另外一个接口,这个接口对象有什么呢?它是一个真正的集合访问...
阅读全文
摘要:前言 在http://www.cnblogs.com/aehyok/p/3558661.html这篇博文中,大致对配置文件有了初步的了解,并且在文中有提到过和这两个节点,在本文中将会介绍学习其他节点。节点节点配置 ASP.NET 使用的所有编译设置。默认的debug属性为“true”,即允许调试,在这种情况下会影响网站的性能,所以在程序编译完成交付使用之后应将其设为“false”。 而且设置成true,遇到报错,会在网页上报出具体的错误,不安全。节点节点控制用户对网站、目录或者单独页的访问。节点设置asp.net身份验证模式,有四种身份验证模式,它们的值分别如下:Mode 说明1、Wind..
阅读全文
摘要:前言 昨天修改代码发现了一个问题,由于自己要在WCF服务接口中添加了一个方法,那么在相应调用的地方进行更新服务就可以了,不料意外发生了,竟然无法更新。左查右查终于发现了问题。App.config配置文件中的配置貌似出现了问题。查找节点发现是如下节点: .............. 我当时也只是看到了下划波浪线,才猜测是这里的问题,于是我把configSections节点注释后,重新更新WCF服务,没想到真的可以更新了,心想这是个什么节点呢,虽然之前自己也见过这个节点,但是从来没用过,于是趁此机会就进行简单的学习一下吧,以便之后说不定什么时候就会用到。 这里我的讲解暂时之...
阅读全文
摘要:前言 不知道大家对const和readonly这两个关键字的区别有什么了解,原来自己之前还真不清楚它们到底是怎么回事,那么如果你也不是很清楚的话,可以一起来探讨一下。在了解这两个关键字的时候我们先来了解一下静态常量和动态常量。 静态常量:是指编译器在编译时候会对常量进行解析,并将常量的值替换成初始化的那个值。 而动态常量的值则是在运行的那一刻才获得的,编译器编译期间将其标示为只读常量,而不用常量的值代替,这样动态常量不必在声明的时候就初始化,而可以延迟到构造函数中初始化。现在再来说明const与readonly吧。readonly和const const修饰的常量是上述中的第一种,即静...
阅读全文
摘要:前言本文主要来讲解一下C#中,自己觉得掌握的不怎么样或者用的不多,不太熟悉的关键字,主要包括base、this、new、override、abstract、virtual以及针对static字段和static构造函数之间的执行问题。base关键字base关键字用于在派生类中实现对基类公有或者受保护成员的访问,但是只局限在构造函数、实例方法和实例属性访问器中:调用基类上已被其他方法重写的方法。 public class Father { public virtual void Say() { Console.WriteLine("F...
阅读全文
摘要:静态类 静态类与非静态类基本相同,但存在一个区别:静态类不能实例化。 也就是说,不能使用 new 关键字创建静态类类型的变量。 因为没有实例变量,所以要使用类名本身访问静态类的成员。 例如,如果名为 UtilityClass 的静态类有一个名为 MethodA 的公共方法,则按下面的示例所示调用该方法: public class UtilityClass { public static void MethodA() { //// } } class TestCounter { sta...
阅读全文
摘要:前言 本节主要来学习下实例构造函数、私有构造函数和静态构造函数。 构造函数的作用: 1、当一个类在new实例化对象时,可调用构造函数进行初始化对象。 2、不带参数的构造函数称为“默认构造函数”。无论何时,只要使用new运算符实例化对象,并且不为new提供任何参数,就会调用默认构造函数。除非类是static的,否则 C# 编译 器将为无构造函数的类提供一个公共的默认构造函数,以便该类可以实例化。 3、通过将构造函数设置为私有构造函数可以阻止类被实例化。 4、结构类型的构造函数与类的构造函数类似,但是 structs 不能包含显式默认构造函数,因为编译器将自动提供一个构造函数。此构造...
阅读全文
摘要:前言 本节主要来讲C#中的各种运算符。主要包括is运算符、as运算符、checked和unchecked运算符、sizeof运算符、空接合运算符(??)、&和&&、移位运算符、增量和减量运算符、条件运算符(三元运算符)、命名空间别名限定符。正文1、is运算符is运算符可以检查对象是否与特定的类型兼容。比如下例中要检查变量是否与object类型兼容:int i=0;if(i is object){ Console.WriteLine("i is an object.");}2、as运算符as运算符用于执行引用类型的显式类型转换。如果要转换的类型和指定的
阅读全文
摘要:前言 这一节主要来了解一下类和结构体之间的异同点、以及针对String和StringBuilder的用法、equals和==,其实可以看出很多地方都用到了上一节的值类型和引用类型、堆栈和装箱拆箱操作吧,慢慢的应用于实践,让理论与实践结合起来。类和结构体类和结构体的不同点: 1.关键字不同 一个是class,一个是struct 2.类型不同,一个是引用类型,一个是值类型(存储:一个堆区,一个栈区)。关于值类型和引用类型以及堆与栈详细可见http://www.cnblogs.com/aehyok/p/3504449.html 3.成员不同,结构体没有默认的构造函数(可以添加)和没有析构函数...
阅读全文
摘要:前言 之前对几个没什么理解,只是简单的用过可空类型,也是知道怎么用,至于为什么,还真不太清楚,通过整理本文章学到了很多知识,也许对于以后的各种代码优化都有好处。 本文的重点就是:值类型直接存储其值,引用类型存储对值的引用,值类型存在堆栈上,引用类型存储在托管堆上,值类型转为引用类型叫做装箱,引用类型转为值类型叫拆箱。 这一句话概括起来很简单,可是真正的理解起来却没那么简单,对于我来说吧。值类型和引用类型C#值类型数据直接在他自身分配到的内存中存储数据,而C#引用类型只是包含指向存储数据位置的指针。C#值类型,我们可以把他归纳成三类: 第一类:基础数据类型(string类型除外):包括整...
阅读全文
摘要:前言 这两天在网上看到的总结很多,尤其是博客园中的,很多很多,也给了我很多的启发,当然自己也总结过,而且有很多人也给与我一些意见和看法。不管怎样,自己还是先把所谓的基础知识加强巩固下吧。 2014年的第一篇博客,希望自己从基础开始。也是希望自己能够稍微系统来学习整合一下。因为之前从来都没系统学习过,都是用到啥查啥,先查啥就忘啥快,所以在此记录一下,以备以后查看。好了废话也不多说,进入正题。正文1、类和对象 类的定义:具有相同属性和功能的对象的抽象的集合。——脑门一闪,类其实也是个集合吗? 类的实例:实例化就是创建对象的过程,使用new关键字来创建。 来看以下代码,最简单的,你肯定懂:...
阅读全文
摘要:前言 最近自己在研究Asp.Net Web API。在看到通过客户端来调用Web API的时候,看到了其中的异步编程,由于自己之前没有接触过,所以就稍微的学习了解一下。这两篇文章是:Calling a Web API From a .NET Client (C#)http://www.asp.net/web-api/overview/web-api-clients/calling-a-web-api-from-a-net-clientCalling a Web API From a WPF Application(C#)http://www.asp.net/web-api/overview/.
阅读全文
摘要:前言泛型允许你在编译时实现类型安全。它们允许你创建一个数据结构而不限于一特定的数据类型。然而,当使用该数据结构时,编译器保证它使用的类型与类型安全是相一致的。泛型提供了类型安全,但是没有造成任何性能损失和代码臃肿。在这方面,它们很类似于C++中的模板,不过它们在实现上是很不同的。使用泛型集合.NET 2.0的System.Collections.Generics 命名空间包含了泛型集合定义。各种不同的集合/容器类都被"参数化"了。为使用它们,只需简单地指定参数化的类型即可。 ArrayList array = new ArrayList(); arr...
阅读全文
摘要:PredicatePredicate泛型委托:表示定义一组条件并确定指定对象是否符合这些条件的方法。此委托由 Array 和 List 类的几种方法使用,用于在集合中搜索元素。通过查看源码发现Predicate Array先来看一下Array.FindAll构建一个字符串类型的数组进行演示测试第一种方式 string[] arrayString = new string[] { "One","Two","Three","F...
阅读全文
摘要:1.设计模式之前奏(UML类图) 2.设计模式之一(单例模式) 3.设计模式之二(简单工厂模式)4.设计模式之三(工厂方法模式)5.设计模式之四(抽象工厂模式第一回合)6.设计模式之四(抽象工厂模式 第二回合)7.设计模式之四(抽象工厂模式 第三回合)8.设计模式原则(单一、开放封 闭、里氏代换、依赖倒转、迪米特法则五大原则)9.设计模式之五(策略模式)10.设计模式之六(装饰模式)11.设计模式之七(代理模式)12.设计模式之八(原型模式) 13.设计模式之九(模版方法模式)14.设计模式之十(外观模式)
阅读全文
摘要:Obsolete 属性将某个程序实体标记为一个建议不再使用的实体。每次使用被标记为已过时的实体时,随后将生成警告或错误,这取决于属性是如何配置的。例如:上面在Main函数中调用,只产生了一个警告的信息。如果将MyObsolete类中的GetName方法属性,设置中的false改为true这样可以看到产生了一个错误信息using System;namespace ConsoleApplication1{ class Program { static void Main(string[] args) { MyObsolete.GetNa...
阅读全文