自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 如何创建C# Closure ?

JavaScript中一个重要的概念就是闭包,闭包在JavaScript中有大量的应用,但是你知道么?C#也可以创建Closure。下面就介绍一下如何在C#中创建神奇的闭包。  在这之前,我们必须先知道如何在C#中定义函数 //函数定义,参数为string,返回为string Funcstring, string> myFunc = delegate(string msg)

2017-09-30 11:38:46 304

原创 C# 批量生成随机密码,必须包含数字和字母,并用加密算法加密

要求:密码必须包含数字和字母思路:1.列出数字和字符。 组成字符串 :chars        2.利用randrom.Next(int i)返回一个小于所指定最大值的非负随机数。        3. 随机取不小于chars长度的随机数a,取字符串chars的第a位字符。        4.循环 8次,得到8位密码        5.循环N次,批量得到密码。

2017-09-29 11:22:45 1357

原创 C#中的foreach和yield

1. foreachC#编译器会把foreach语句转换为IEnumerable接口的方法和属性。foreach (Person p in persons) { Console.WriteLine(p); }foreach语句会解析为下面的代码段。调用GetEnumerator()方法,获得数组的一个枚举在while循环中,只要MoveNe

2017-09-28 11:27:55 251

原创 数组为什么可以使用linq查询

问题引出  这视乎是个完全不必要进行讨论的话题,因为linq(这里具体是linq to objects)本来就是针对集合类型的,数组类型作为集合类型的一种当然可以使用了。不过我还是想写一下,这个问题源于qq群里一位朋友的提问:.net的数组类型都隐式继承了Array类,该类是一个抽象类,并且实现了IEnumerable、ICollection、IList接口。但linq的方法都是针对实现了

2017-09-27 10:57:24 332

原创 C#中的 具名参数 和 可选参数

具名参数 和 可选参数 是 C# framework 4.0 出来的新特性。一. 常规方法定义及调用public void Demo1(string x, int y){ //do something...}public void Main(){ //调用 Demo1("similar", 22);}

2017-09-26 11:10:04 242

原创 显示实现接口

接口定义了一系列的行为规范,为类型定义一种Can-Do的功能。例如,实现IEnumerable接口定义了GetEnumerator方法,用于获取一个枚举数,该枚举数支持在集合上进行迭代,也就是我们常说的foreach。接口只是定义行为,具体的实现需要由具体类型负责,实现接口的方法又分为隐式实现与显示实现。一、隐式/显示实现接口方法  简单的说,我们平时“默认”使用的都是隐式的实现方

2017-09-25 10:47:01 396

原创 异步CTP(Async CTP)为什么那样工作?

对异步CTP感兴趣有很多原因。异步CTP使异步编程比以前更加容易了。它虽然没有Rx强大,但是更容易学。异步CTP介绍了两个新的关键字,async和await。异步方法(或Lambda表达式)必须返回void,Task或Task。这篇文章不是介绍异步CTP的,因为网上有很多这样的文章。这篇文章的目的是把程序员开始使用Async CTP遇到的一些常见问题集中起来。推断返回类型当从异步方

2017-09-22 16:07:31 347

原创 C#多线程基础,适合新手了解

一、创建线程  在整个系列文章中,我们主要使用Visual Studio 2015作为线程编程的主要工具。在C#语言中创建、使用线程只需要按以下步骤编写即可:1、启动Visual Studio 2016,新建一个控制台应用程序。2、确保该控制台程序使用.NET Framework 4.6或以上版本。然而在该篇中的所有示例使用较低版本可以正常工作。3、双击打开该控制台

2017-09-21 10:22:34 165

原创 有趣的网站-第二弹

1.预测您的死亡时间,通过输入出生日期,选择性别、BMI范围(可以通过页面下方输入身高、体重计算出)、生活态度和是否抽烟,点击查看按钮就可以得出结果。 我测了我还能活52多年。。不过看着时间越来越少,心理感觉毛毛的。好恐怖死亡时间预测: http://www.deathclock.com/   2.很有意思的广告,第一次看到这种广告。。。太有

2017-09-20 17:04:44 254

原创 浅谈c#接口的问题,适合新手来了解

这段时间的项目有用到接口,开始不是特别理解接口,只是单单知道接口定义非常简单,甚至觉得这个接口只是多此一举(个人开发的时候)。现在开始团队开发,才发现接口原来是这么的重要和便捷!接下来就来谈谈我这段时间对接口使用的粗浅见解,说的对希望大家赞,说的有误的地方希望大家多多包涵建议!READY GO!接口的定义就不多说了,它有一个很重要的知识点,就是所有继承这个接口类的都必须实现

2017-09-19 10:50:13 867 2

原创 C#中数组作为参数传递的问题

原则:尽可能控制对数据的修改,如果可以预测某个数据不会或不应该被改变,就要对其控制,而不要期望使用这个数据的调用者不会改变其值。如果参数在使用过程中被意外修改,将会带来不可预知的结果,而且这种错误很难被检查到,所以我们在设计方法参数的时候,要充分考虑传递引用类型参数或者引用方式传递引用类型参数可能带来的后果。如果一个数据在传递过程中不能被改变,就要在构建这个对象的时候就使其值(字段

2017-09-18 13:47:58 612

原创 C#中的表达式树的浅解

表达式树可以说是Linq的核心之一,为什么是Linq的核心之一呢?因为表达式树使得c#不再是仅仅能编译成IL,我们可以通过c#生成一个表达式树,将结果作为一个中间格式,在将其转换成目标平台上的本机语言。比如SQL。我们常用的Linq to sql就是这样生成SQL的。表达式树是.NET 3.5之后引入的,它是一个强大灵活的工具(比如用在LINQ中构造动态查询)。先来看看Expres

2017-09-15 12:45:33 268

原创 C#中怎样实现序列化和反序列化

我们想要将数据进行持久化的操作的话,也就是将数据写入到文件中,我们在C#中可以通过IO流来操作,同时也可以通过序列化来操作,本人是比较推荐使用序列化操作的因为我们如果想要将一个对象持久化到文件中 如果我们使用IO流文件流操作的话可能就没办法实现了,但是我们用序列化的话就可以轻而易举的实现,并且当我们回拿到数据的时候,我们拿到的也是一个对象,但是它保存到文件中是二进制文件具体

2017-09-14 11:36:30 662

原创 未将对象引用到实例

对象为null时调用给对象的属性或方法“未将对象引用到实例”是很多像我一样的初学者经常遇到的一个问题,常常令人烦恼不已,那么这个问题是怎么发生的呢?先给大家看一张图,我们从这张图入手来分析这个错误造成的原因。可能很多人看到这样的代码会觉得可笑:”能写出这样的代码,看来此人的智商已“超越”人类的范畴了!“但是就是有某些内裤外穿的超人叔叔经常不间歇性的写出这样的代码、遇

2017-09-13 11:36:21 447

原创 C# Byte[]数组读取和写入文件

protected void ByteToString_Click(object sender, EventArgs e) { string content = this.txtContent.Text.ToString(); if (string.IsNullOrEmpty(content))

2017-09-11 11:37:53 1568 1

原创 C#中Dictionary的用法

C#中Dictionary的用法  1.要使用Dictionary集合,需要导入C#泛型命名空间 System.Collections.Generic //程序集:mscorlib 2.Dictionary的描述从一组键(Key)到一组值(Value)的映射,每一个添加项都是由一个值及其相关连的键组成任何键都必须是

2017-09-07 10:52:26 273

转载 C# DataTable 详解

添加引用using System.Data;创建表//创建一个空表DataTable dt = new DataTable();//创建一个名为"Table_New"的空表DataTable dt = new DataTable("Table_New");创建列//1.创建空列DataColumn dc = new DataColum

2017-09-06 10:52:44 745

原创 使用反射、特性简化代码

假设现在有一个学生类(Student) /// /// 学生类 /// public class Student { /// /// 名字 /// private string name; public string Name {

2017-09-05 13:03:27 191

原创 浅入浅出Lambda表达式

大家在开发中会经常看到也会经常使用lambda表达式。园子里也有很多详解lambda表达式的文章,多是从横向来讲述。但lambda表达式到底如何变成现在这个样子,表达式的形式到底代表什么含义,这些可能就不太明白了。本文将从来源开始,纵向剖析,一直演化出我们常用的lambda表达式。 引子为方便说明,先举个例子,列出Lambda表达式的一个典型形式:

2017-09-04 10:50:42 230

转载 golang模板语法简明教程(后面有福利哦)

template是go 语言web开发中必不可少的,特此记录下来:【模板标签】模板标签用"{{"和"}}"括起来 【注释】{{/* a comment */}}使用“{{/*”和“*/}}”来包含注释内容 【变量】{{.}}此标签输出当前对象的值{{.Admpub}}表示输出Struct对象中字段或方法

2017-09-01 11:33:43 802

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除