自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 问答 (3)
  • 收藏
  • 关注

原创 解决EntityFrameworkCore “无法将“Add-Migration”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。”

使用entityframeworkcore的code first的Add-Migration去更新数据库时提示: Add-Migration : 无法将“Add-Migration”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。 所在位置 行:1 字符: 1 + Add-Migration Initial + ~~~~

2017-08-03 18:30:26 4883 2

原创 C#的协变和逆变

协变和逆变以及不变都是基于引用类型来讲的,我们一步一步的说起。 首先,面向对象设计有一个准则是“里氏替换原则”,这个原则是在讲“基类出现的地方,可以用子类来替换。”处于演示的目的,我们创建两个类,并让一个类继承于另一个类。让我们通过C#的例子来看一下: public class BaseClass { //基类 // 处于简化的目的,这里并没有任何实现 } publ

2017-07-20 18:38:13 1747

原创 Asp.net core 学习笔记--(1)依赖注入

依赖注入依赖注入是一种软件的设计技巧,它主要解决的是类与类之间的耦合,这种设计技巧满足面向对象设计的”依赖倒置“原则:类与类之间不相互依赖,都要依赖接口。比如说controller中需要一个”AccessDataBase“的类型来进行对数据库的检索,那么我们可以将这个AccessDataBase类中实现的功能做成一个接口,然后让这个类去实现这个接口,然后,我们在需要这个类的地方(本例中是contro

2017-07-12 15:27:41 1269

原创 设计模式的学习--(4)抽象工厂模式

抽象工厂模式 –产品族的创建抽线工厂模式的定义:提供一个创建一系列相关或相互依赖对象的接口,而无须指定他们具体的类。抽象工厂模式又称为Kit模式,它是一种对象创建型模式。和工厂方法模式不同的地方在于抽象工厂模式是提供了创建一系列类的实例的工厂方法。 还是拿制造汽车来举例子:某汽车公司要制造两款汽车,一款是Mini,一款是Suv,如果利用工厂方法模式来建模的话,可以想象要创建成倍增长的类,显然不适合

2017-07-04 16:24:25 313

原创 设计模式的学习--(3)工厂方法模式

工厂方法模式–多态工厂的实现简单工厂模式虽然简单,但当要引入更多的新产品时,需要对Factory工厂类进行源代码的修改,这违背了开闭原则。工厂方法模式应运而生。 在工厂方法模式中,不再提供一个统一的工厂类,而是针对不同的产品提供不同的工厂类。 工厂方法模式的定义如下:定义一个用于创建对象的的接口,让子类决定将哪一个类进行实例化。工厂方法模式让一个类的实例化延迟到其子类。工厂方法模式又称为“工厂模

2017-07-04 14:56:02 332

原创 设计模式的学习-(2)简单工厂模式

集中式工厂的实现–简单工厂模式简单工厂模式并不是Gof中定义的23中模式的一种,但是它是学习工厂方法模式和抽象工厂模式的基础。 简单工厂模式的定义如下:定义一个工厂类,他可以根据不同的参数来返回不同类的实例,通常这些类都有一个共同的父类,因为在简单工厂模式中进行创建的类的方法都是静态方法,因此简单工程模式又被称为“静态工厂方法”模式,它属于类创建型模式。 简单工厂模式的要点在于:当你需要什么,你

2017-07-03 17:30:56 259

原创 设计模式的学习-(1)单例模式

单例模式这个设计模式是通过windows系统中任务管理器的例子来进行演示的:在windows操作系统中,我们一次只能开启一个任务管理器,任务管理器的代码模拟如下:public class TaskManager{ public void DisplayProcesses(){.......} public void DisplayServices(){..........}}对于

2017-07-03 15:50:34 271

原创 框架的控制反转的能力

控制反转(IoC)与依赖注入(DI)  IoC(Inversion of Control),这是mvc框架的核心,贯穿始终。所谓IoC,对于mvc框架来说,就是由mvc框架来负责控制对象的生命周期和对象间的关系。这是什么意思呢,举个简单的例子,我们是如何找女朋友的?常见的情况是,我们到处去看哪里有长得漂亮身材又好的mm,然后打听她们的兴趣爱好、qq号、电话号、手机号、MSN………,想办法认识她们,投

2017-06-30 17:13:33 495

原创 C#中的条件判断(?,??等等)

null值判断 static void Main(string[] args) { string source = null; string test = source ?? "null"; Console.WriteLine(test); Console.ReadKey();

2017-06-29 17:37:12 8629

原创 C#学习笔记(9)—–多线程基础(下)

C#5.0基于任务的异步模式处理异步工作时,任务提供了比线程更好的抽象。任务自动调度为恰当数量的线程,而且大型任务可由多个小任务组成,就和大量程序由多个小方法组成一样。 但任务有自己的缺点。其中最麻烦的是它“颠倒”了程序逻辑。为了演示这个问题,先来考虑一个同步方法,它因为一个Web请求(I/O受限的、高延迟的操作)而阻塞。然后,将它和C# 5.0之前的异步版本和基于任务的异步模式(Task-bas

2017-06-28 14:24:13 444

原创 C#学习笔记(9)—–多线程基础(上)

一些概念多线程处理术语太多,容易混淆,所以我们先把它们定义好。CPU(中央处理器)或者内核 是实际执行给定程序的硬件单元。每台机器至少有一个CPU;如今多CPU机器也不少见。许多现代CPU都支持同时多线程(Intel称为超线程),使一个CPU能表现为多个“虚拟”CPU。进程是给定程序当前正在执行的实例;操作系统的一个基本功能就是管理进程。每个进程都包含一个或多个线程。一个进程由System.Di

2017-06-26 15:49:53 638

原创 .NET core的学习

概念有很多概念是需要先了解清楚的,我们一点一点的记录吧。.NET Standard Library这个库是所有微软目前实现的平台所需要遵循的一个标准,比如.net core ,.net framework: .NET core.NET Core是一个开源通用的开发框架,支持跨平台,即支持在Window,macOS,Linux等系统上的开发和部署,并且可以在硬件设备,云服务,和嵌入式/物联网方案中进

2017-06-23 12:21:06 1643

原创 Git学习笔记

集中式vs分布式基于版本的管理有分布式的也有集中式的,集中式的如CVS及SVN都是集中式的版本控制系统。集中式版本控制系统最大的问题就是必须联网才能工作,分布式的特点是每个人电脑上的版本都是一个独立的版本,都是一个完整库,分布式的安全性也会高很多,如果你电脑上的版本有问题了,如果你之前给另外一个同事传过一版你的,那么你可以从他那里要回来。 CVS作为最早的开源而且免费的集中式版本控制系统,直到现在

2017-06-22 10:58:12 252

转载 WEB前端学习笔记-CSS基础教程

通过使用 CSS 来提升工作效率!在我们的 CSS 教程中,您会学到如何使用 CSS 同时控制多重网页的样式和布局。CSS 概述•CSS 指层叠样式表 (Cascading Style Sheets) •样式定义如何显示 HTML 元素 •样式通常存储在样式表中 •把样式添加到 HTML 4.0 中,是为了解决内容与表现分离的问题 •外部样式表可以极大提高工作效率 •外部样式表通常存储在

2017-06-19 16:08:33 849

转载 WEB前端学习笔记-HTML(下)

HTML 类对 HTML 进行分类(设置类),使我们能够为元素的类定义 CSS 样式。为相同的类设置相同的样式,或者为不同的类设置不同的样式。<!DOCTYPE html><html><head><style>.cities { background-color:black; color:white; margin:20px; padding:20px;}

2017-06-19 14:51:26 500

原创 WEB前端学习笔记-HTML(中)

HTML 样式style 属性用于改变 HTML 元素的样式。HTML 的 style 属性style 属性的作用:提供了一种改变所有 HTML 元素的样式的通用方法。样式是 HTML 4 引入的,它是一种新的首选的改变 HTML 元素样式的方式。通过 HTML 样式,能够通过使用 style 属性直接将样式添加到 HTML 元素,或者间接地在独立的样式表中(CSS 文件)进行定义。由于HTML前期

2017-06-19 14:12:03 1002

原创 WEB前端学习笔记-HTML(上)

以下大部分学习资料都来自于http://www.w3school.com.cn/tags/index.asp,简单的学习一下html、css、javascriptHTML什么是 HTML? HTML 是用来描述网页的一种语言。HTML 指的是超文本标记语言 (Hyper Text Markup Language)HTML 不是一种编程语言,而是一种标记语言 (markup language)

2017-06-19 12:45:51 669

转载 javascript知识体系

JAVASCRIPT 篇0、基础语法javascript基础语法包括:变量定义、数据类型、循环、选择、内置对象等。数据类型有string,number,boolean,null,undefined,object等。其中,string,number和boolean是基础类型,null和undefined是js中的两个特殊类型,object是引用类型。 Javascript可以通过typeof

2017-06-19 09:50:27 1184

原创 C#闭包的陷阱

陷阱我们写下面一段这样的代码: static void Main(string[] args) { List<Action> actions=new List<Action>(); for (int i = 0; i < 10; i++) { //int temp = i;先注释

2017-06-17 17:23:24 617

原创 C#的接口实现的依赖倒置、控制反转、依赖注入

面向接口编程什么是高内聚、低耦合引自博客园中一篇文章来解释一下:http://www.cnblogs.com/robnetcn/archive/2012/04/15/2449008.html起因:模块独立性指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单,两个定性的度量标准――耦合性和内聚性。耦合性也称块间联系:指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系

2017-06-15 18:14:36 8526

原创 JavaScript学习笔记--第3章:基本概念中的语法

陆续学C#已经有8个月了。这8个月来学习了这门语言的方方面面,接着看一下javascript,学习的过程中,我会记录这两种语言的不同之处。变量javascript:javascript的变量是一种松散类型的变量,意思就是说可以用来保存任何类型的值,换句话说,javascript中的变量就是保存值得一个占位符而已,例如:var message;这句代码定义了一个message的变量,该变量可以用来

2017-06-14 17:25:55 369

原创 C#的静态构造函数(主要说的是编译器为Lambda表达式生成的类)

静态构造函数静态构造函数是C#的一个新特性,其实好像很少用到。不过当我们想初始化一些静态变量的时候就需要用到它了。这个构造函数是属于类的,而不是属于哪里实例的,就是说这个构造函数只会被执行一次。也就是在创建第一个实例或引用任何静态成员之前,由.NET自动调用。class SimpleClass{ // Static constructor static SimpleClass()

2017-06-13 09:38:55 848

原创 一个用来计算文本大小的方法(以及再一次对闭包的解释)

闭包 与Lambda先看一下这个方法: private static string FormatBytes(long bytes) { string[] magnitudes = new string[] { "GB", "MB", "KB", "Bytes" }; long max =(long)Math.Pow(1024, magn

2017-06-12 23:20:26 404

转载 C#学习笔记(八)—–LinqToSql和Entity Framework(下)

本篇大部分都摘自博客园,地址:http://www.cnblogs.com/lifepoem/archive/2011/11/15/2249303.htmlLinqToSql和Entity Framework(下)在本篇中,我们将接着上一篇“LINQ to SQL 和 Entity Framework(上)”的内容,继续使用LINQ to SQL和Entity Framework来实践“解释查询”,

2017-06-01 17:20:03 686

原创 C#学习笔记(八)—–LinqToSql和Entity Framework(上)

LinqToSql和Entity Framework虽然linqtosql(以下简称L2S)现在已经停止更新或者更新的很慢,它的地位也由Entity Framework(以下简称EF)逐渐取代,但是理解它们的原理对于后面的深入学习EF还是非常有必要的,而且基于L2S的速度上面的优势,有时也会直接用L2S来做业务。 本章还是基于前面讲解的Linq的两个方面(本地查询和解释查询)中的解释查询来介绍的,

2017-06-01 15:59:29 2652

转载 C#学习笔记(八)—–LINQ查询创建策略

这篇文章是引用博客园的,这篇文章应该也是出自C# in a nutshell,但是翻译的比较好,容易理解。地址为:http://www.cnblogs.com/lifepoem/archive/2011/10/31/2230175.htmlLINQ查询创建策略通过前面几篇的讨论学习,我们已经了解了怎么去写一个比较简单的LINQ查询,也知道了创建LINQ查询的两种方式:方法语法和查询表达式。在这里,我

2017-05-31 16:10:10 348

原创 C#学习笔记(八)—–LINQ查询之子查询

子查询在linq中,所谓的子查询就是包含在另一个查询的Lambda表达式中的查询语句。下面这个示例中就是使用子查询对一组音乐家名字按姓氏排序:string[] musos ={ "David Gilmour", "Roger Waters", "Rick Wright", "Nick Mason" };IEnumerable<string> query = musos.OrderBy (m =>

2017-05-31 15:53:38 6146 1

原创 C#学习笔记(八)—–LINQ查询之延迟执行

LINQ查询之延迟执行在LINQ中,另一个很重要的特性就是延迟执行,也可以说是延迟加载。它是指查询操作并不是在查询运算符定义的时候执行,真正使用集合中的数据时才执行,例如遍历数据集合时调用MoveNext方法会触发查询操作,下面是一个简单的示例:var numbers = new List<int>();numbers.Add (1);IEnumerable<int> query = numbe

2017-05-26 17:52:42 3966 2

原创 C#学习笔记(八)—–LINQ查询的基础知识(下)

LINQ查询语法和SQL语法的对比LINQ查询语法看起来和SQL语法非常相似,但他们完全不同。LINQ查询表达式是一种C#表达式,遵循C#的语法规则,例如,在LINQ中,变量必须在声明之后才能使用,与之不同的是在SQL中,select后面可以直接跟列明,而这些列所在的表在稍后的from子句中才能确定。(也就是说from这个子句在LINQ中被放到最前的原因)。 在LINQ中,一个子查询实际上就是一

2017-05-26 17:17:24 333

原创 C#学习笔记(八)—–LINQ查询的基础知识(中)

LINQ查询(中)(接上文)Lambda表达式及Func方法签名:标准的查询运算符使用了一个泛型Func委托,Func是System.Linq命名空间中一组通用的泛型委托,它的作用是保证Func中的参数顺序和Lambda表达式中的参数顺序一致。因此,一个Fuc<TSource,bool>对应的Lambda表达式为TSource=>bool,也就是接受一个TSource,返回bool。 类似的,F

2017-05-26 10:44:40 479

原创 C#学习笔记(八)—–LINQ查询的基础知识(上)

由于都是手打的字,难免会出现错误,请大家指正,感激。比如下面出现的LINQ、LInq、LINq等都是指的一个东西:LINQLINQ查询lINQ是Language Integrated Query的简称,他可以视为一组语言和框架的特性的集合,我们可以使用LINQ对本地对象和远程数据源进行结构化的类型安全的检查。LINQ在C# 3.0 /Framework 3.5时引入。LINQ用于查询任何实现了I

2017-05-26 09:46:19 501

原创 C#学习笔记(七)—–集合--Array

集合–ArrayArray类是所有一维数组和多维数组的基类。而且它是实现集合接口中最基本的类型之一。Array提供了类型统一性,所以常见的方法都适用于Array,而与他们声明地实际类型无关。 当使用C#语法创建一个数组时,CLR会在内部将它转化为Array的子类–合成一个对应该数组维数和元素类型的类型。这个类型实现了已经闭合的泛型IList,例如:IList<string> CLR也会特别处理数

2017-05-25 15:51:54 408

原创 C#学习笔记(七)—–集合--ICollection和Ilist接口

ICollection和Ilist接口虽然枚举接口定义了可以迭代集合的方法,但是它们并没有定义确定集合元素多少,根据索引访问集合元素、搜索和修改元素等方法。为了实现这些功能,.NET Framework定义了IColleciton、IList、IDictionary等接口,这些接口都有相应的泛型等价物,非泛型的存在只是为了保持向后兼容。这些接口的集成关系如下图所示(在上一节有,但是为了方便又拿下来

2017-05-25 15:50:54 1175

原创 C#学习笔记(七)—–集合--IEnumerable和IEnumerator接口

IEnumerable IEnumerator foreach IEnumerable<T> IEnumerator<T>

2017-05-24 17:56:45 2994

原创 C#学习笔记(三)—–C#高级特性:dynamic

C#高级特性:动态绑定动态绑定动态绑定将类型绑定(类型解析、成员和操作过程)从编译时推迟到了运行时。在编译时,如果程序员知道某个特定函数、成员的存在而编译器不知道,那么这种操作是非常有用的,这种情况通常出现在操作动态语言和COM,如果不适用动态绑定,就只能使用反射(reflection)机制。动态类型是通过dynamic关键字声明的:dynamic d = GetSomeObject();d

2017-05-23 18:42:35 7255 2

原创 C#学习笔记(三)—–C#高级特性:匿名类型

C#高级特性:匿名类型匿名类型是由编译器临时创建的用来保存一组值的简单类。可以用new来创建一个匿名类型,并在后面跟上对象初始化器“{}”,在里面指定类型包含的属性名称和值,名值对:var dude = new { Name = "Bob", Age = 23 };编译器将这个语句编译成类似于下面的东西:internal class AnonymousGeneratedTypeName{pr

2017-05-23 16:50:47 259

原创 C#学习笔记(三)—–C#高级特性:扩展方法

C#高级特性:扩展方法扩展方法允许为一个类定义新的方法但是不用操作这个类。扩展方法就是一个静态类的静态方法,这个方法的第一个参数的类型就是要扩展的这个类的类型(加this):public static class StringHelper{public static bool IsCapitalized (this string s){if (string.IsNullOrEmpty(s

2017-05-23 16:37:09 401 1

原创 C#学习笔记(三)—–C#高级特性:运算符重载

C#高级特性:运算符重载这章先空下,因为日常工作中,没有接触到

2017-05-23 16:11:59 336

原创 C#学习笔记(三)—–C#高级特性:可空值类型

C#高级特性:可空值类型可空值类型引用类型可以用一个空引用(null)来表示一个不存在的值,值类型,通常不能用来表示一个可空的值。例如:string s = null; // OK, Reference Typeint i = null; // Compile Error, Value Type cannot be null如果要表示一个可空的值类型,你必须用一种特殊的结构:可空值类型。它的表

2017-05-23 12:12:23 598

原创 C#学习笔记(三)—–C#高级特性:实现迭代器的捷径

实现迭代器的捷径本章摘自《C# in depth》,内容包括: 在C#1中实现迭代器 C#中的迭代器块 迭代器使用示例 使用迭代器作为协同程序迭代 器 模式 是 行为 模式 的 一种 范例, 行为 模式 是一 种 简化 对象 之间 通信 的 设计 模式。 这是 一种 非常 易于 理解 和 使用 的 模式。 实际上, 它 允许 你 访问 一个 数据项 序列 中的 所有 元素, 而无 须 关心

2017-05-22 21:06:51 519

空空如也

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

TA关注的人

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