C#
LoveMIss-Y
爱生活,爱学习,爱这个世界上一切让自己觉得快乐的东西,爱MIss-Y
展开
-
3万字通俗易懂告诉你什么是.NET?什么是.NET Framework?什么是.NET Core?
通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core?什么是.NET?什么是.NET Framework?本文将从上往下,循序渐进的介绍一系列相关.NET的概念,先从类型系统开始讲起,我将通过跨语言操作这个例子来逐渐引入一系列.NET的相关概念,这主要包括:CLS、CTS(CLI)、FCL、Windows下CLR的相关核心组成、Windows下托管程序运行概念...转载 2019-11-15 09:45:00 · 1775 阅读 · 0 评论 -
C# 语言各个版本主要特性(从C#1.0到C#8.0)
前言:本文给出一个从C#1.0到C#8.0的各个版本的主要C#特性下面列出了在以前版本的 C# 语言和 Visual Studio.NET 中引入的主要功能。1、C# 1.0 特性----第1个版本,编程语言最基础的特性,对应于Visual Studio .NET 2002Classes:面向对象特性,支持类类型 Structs:结构 Interfaces:接口 Event...原创 2018-05-05 16:18:30 · 3332 阅读 · 1 评论 -
C#的内存分配与管理
前言:前面的文章已经在内存的管理方面说的比较多了,这里再补充一下关于C#的内存分配与管理。前面的两篇文章参见:一文详解堆栈(二)——内存堆与内存栈一文读懂C#的 堆、栈、值类型、引用类型一、C#的内存分类由于C#是一种托管语言,它的垃圾回收机制(GC)是由.net平台负责的,加之C#语言并没有指针,所以我们在使用过程中极少会考虑到内存使用状况以及项目在运行过程中是如何进行内存管...原创 2019-10-16 11:00:48 · 4344 阅读 · 1 评论 -
一文搞懂C#中的赋值、深复制、浅复制
一、文字含义先引入一个观念,赋值和深复制、浅复制并不是一样的,含义是不一样的。本文所说的主要是针对“ 引用类型 ”本文以 “类 ”为例加以说明。一般的系统定义的值类型(int、double、float等等)此处不做考虑。1、赋值。指的是 “ 等号= ”。它相当于是给引用对象起一个别名。2、浅度复制和深度复制。指的是类实现 ICloneable接口,重写该接口的唯一方法。注意:不管是...原创 2018-07-29 20:31:56 · 11077 阅读 · 5 评论 -
ASP.NET资源大全
转载:DotNet微信公众号API框架NancyFx:轻量、用于构建 HTTP 基础服务的非正式(low-ceremony)框架,基于.Net 及 Mono 平台。ASP.NET WebAPI:快捷创建 HTTP 服务的框架,可以广泛用于多种不同的客户端,包括浏览器和移动设备ServiceStack:架构缜密、速度飞快、令人愉悦的 web 服务。Nelibur:Nelibu...转载 2018-08-03 09:58:46 · 2051 阅读 · 0 评论 -
C#之Chart控件系列教程——一
一、什么是Micosoft.Chart.Controls Micosoft.Chart.Controls是微软自带的一个图形可视化的组件,可以在Web程序和窗体程序中(Windowsform)中使用。在.NET4.0之后(即VS2010之后)不需要再手动安装,集成在了VS里面,比如我用的VS2017版本,直接在工具箱中点开“ 数据 ”控件,里面就有一个Chart控件,直接拖动到窗体中即可,默认...原创 2018-08-03 15:45:10 · 95535 阅读 · 6 评论 -
一文详解“抽象工厂模式”以及python语言的实现
一、什么是“抽象工厂模式”——Abstract Factory Pattern其实所谓的抽象工厂模式,是在前面讲解过的“简单工厂模式”、“工厂方法模式”的基础之上进行扩充的。回忆前面的这两种模式,我们可以得出:工厂模式:针对一个系列的类(比如Circle、Rectangle、Ellipse、Triangle),它们有很多的共同点,很多书籍或者是文章将他们称之为一个系列的产品,通俗的...原创 2018-11-20 11:11:37 · 3117 阅读 · 3 评论 -
C# NetCore使用AngleSharp爬取周公解梦数据
C# NetCore使用AngleSharp爬取周公解梦数据这一章详细讲解编码过程那么接下来就是码代码了,GO新建NetCore WebApi项目 空的就可以 NuGet安装 1 Install-Package AngleSharp 或者界面安装 using。。默认本地装有mysql或者有远程开放的mysq...转载 2018-11-30 14:23:12 · 1037 阅读 · 1 评论 -
C#8.0的新语法特性——范围类型(Range Type)
C# 8.0中加入了一个新的范围类型(Range Type)。这里我们首先展示一些代码,并一步一步为代码添加一些不同的东西, 为大家展示一下范围类型的功能和用法。我们最原始的代码如下:这里我们显示的定义了我们查询数组的索引1-3, 并输出他们的值。毫无疑问,当我们运行程序之后,代码结果如下:但是,假设我们不想使用for循环,而是想要使用这个名为“range”的新特性...转载 2018-12-12 16:29:49 · 2208 阅读 · 0 评论 -
C#8.0新的语法特性尝尝鲜!
初试C# 8.0昨天我们宣布了Visual Studio 2019的第一个预览版(使用Visual Studio 2019提高每个开发人员的工作效率)和.NET Core 3.0(宣布.NET Core 3预览1和开源Windows桌面框架)。其中一个令人兴奋的方面是你可以使用C#8.0中的一些功能!在这里,我将带您进行一次导游,了解您可以在预览中尝试的三种新的C#功能。并非所有C...转载 2018-12-13 16:46:48 · 3010 阅读 · 0 评论 -
一文详解ODBC、OLEDB、ADO、ADO.NET之间的关系
相信看到这篇文章的人,心中肯定有这样的想法:ODBC、OLEDB、ADO、ADO.NET貌似都是访问数据库的东东,那么他们之间有什么区别,又有什么联系呢?不要着急,待我慢慢道来。一、ODBCODBC(Open Database Connectivity,开放数据库互连)。ODBC,官方的定义是这样的,开放数据库互连(ODBC)是MICROSOFT提出的数据库访问接口标准。ODBC(Op...原创 2019-01-16 21:28:38 · 7706 阅读 · 1 评论 -
【.NET资源收集】C#与时俱进的知识点...
前言:本文仅仅作为一个个人草稿本,收藏一些网站,一些资源分享,一些书记分享,对于.NET的学习非常有帮助,免得到时候再找。一、.NET的官网介绍以及导航1、关于.NET Standard关于.NET Standard的版本以及它所支持的.NET Core版本和.NET Framework版本,以及.NET Standard里面有多少个API,https://dotnet.mic...原创 2019-10-07 00:11:16 · 837 阅读 · 0 评论 -
.NET 爱python——pythonnet模块使用
前言:如何更好地进行python与.NET之间的交互式编程?在之前,我们常常使用IronPython,在.NET平台上使用python开发,但是IronPython只支持python2.7版本,而且不在维护,pythonnet提供了一个更好的解决方案,它提供了二者的交互,可以在编写python的时候与C#交互,调用C#,也可以在编写.NET的时候,将python代码嵌入在C#里面。详细信息...原创 2019-10-07 15:09:53 · 19239 阅读 · 0 评论 -
一文理解C# explicit和implicit关键字
一、这两个关键字有什么用?(1)考虑下面的需求,Person类有个字段age。我想使用Person p = (Person) 18 来创建一个age为18的Person对象,怎么办?更进一步,我想使用Person p = 18 来创建一个age为18的Person对象,怎么办?(2)类似,Person类有个字段name。我想使用Person p = (Person) “张三” 来创建一...原创 2018-07-29 17:04:18 · 923 阅读 · 1 评论 -
C#集合类型大揭秘
原创: 宋文杰 撸码那些事 3天前集合是.NET FCL(Framework Class Library)的重要组成部分,我们平常撸C#代码时免不了和集合打交道,FCL提供了丰富易用的集合类型,给我们撸码提供了极大的便利。正是因为这种与生俱来的便利性,使得我们对集合既熟悉又陌生。很多同学可能一直还是停留在使用的层面上,那么今天我们一起来深入学习一下C#语言中的各种集合。首先我们看一下 FCL 给我...转载 2018-06-17 10:13:10 · 342 阅读 · 0 评论 -
我眼中的.NET Core
一、什么是.NET Core .NET Core是一个开源通用的开发框架,支持跨平台,即支持在Window,macOS,Linux等系统上的开发和部署,并且可以在硬件设备,云服务,和嵌入式/物联网方案中进行使用。.NET Core的源码放在GitHub上,由微软官方和社区共同支持。它和传统的.NET Framework,属于“子集—超集”的关系,或者你也可以简单地认为它就是.NET原创 2017-03-28 19:55:18 · 5850 阅读 · 1 评论 -
C#的Linq to SQL
一、什么是Linq to SQLLinq to SQL在使用的时候,有两种方式(1)根据已经存在的数据库去创建实体类,这种方式只需要在设计器中,选择从“服务器资源管理器”中托动相关的数据表即可,这里不重点讨论,(2)通过“工具箱”拖动相关的类、和关联到设计器中,然后再将这个实体类映射到实际的数据库中。那么怎么去映射到数据库中呢,具体操作方法如下根据数据实体类创建数据库: st原创 2017-05-02 10:49:55 · 2146 阅读 · 0 评论 -
C#4.0中的元组对象Tuple
一、什么是元组元组就是一些对象的集合,在我们编程时,比如一个人的信息,我们常常创建一个Person类去描述一个人,传统的做法如下:public class Person{ public int ID{get;set;} public string Name{get;set;}}Person a=new Person(){ID=1001,Name='CodeL'};原创 2017-04-23 17:43:19 · 3605 阅读 · 0 评论 -
C#的动态语言运行时DLR
一、关于dynamic关键字1、dynamic该类型的作用是绕过编译时类型检查, 改为在运行时解析这些操作,即对象到底属于什么类型是在运行时才确定的,而在编译时并没有确定2、dynamic类型可以作为属性、字段、索引器、参数、返回值或类型约束的类型3、dynamic由于在编译时无法确定类型,因此不能够使用智能敏感提示4、在大多数情况下,dynamic 类型与 object 类型的行原创 2017-04-24 17:51:20 · 1679 阅读 · 0 评论 -
C#的动态类型ExpandoObject和DynamicObject
一、ExpandoObject类型 ExpandoObject表示一个对象,该对象包含可在运行时动态添加和移除的成员.这个类和动态类型有关,这个类能做些什么?学过javascript的都知道,javascript里面有动态属性这个说法,现在C#里面同样有,具体的做法如下:在使用这个类型之前,需要引入命名空间using System.Dynamic;原创 2017-04-24 20:01:40 · 6182 阅读 · 0 评论 -
C#的补充数据类型System.Numerics.dll
一、System.Numerics.dll简介 创建一个C#项目,然后手动添加这个引用,并且添加usingSystem.Numerics;命名空间,这个命名空间中包含了一些结构体,用来表示一些比较复杂的数据类型,如下所示注意:上面所说的“单精度浮点数” 指的就是Single结构,它实际上是 float的包装,double的包装为Double,但是float的包装不是Float 而是Sing原创 2017-04-24 21:28:48 · 5332 阅读 · 0 评论 -
常见的一些C#开源框架或者开源项目
Json.NET http://json.codeplex.com/Json.Net 是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单。通过Linq To JSON可以快速的读写Json,通过JsonSerializer可以序列化你的.Net对象。让你轻松实现.Net中所有类型(对象,基本数据类型 等)和Json的转换。 Mat转载 2017-04-24 22:03:40 · 27457 阅读 · 4 评论 -
.NET下的图形绘制控件
图形图表的可视化数据表现形式已成为一种趋势。因为图表能直观的展示信息、对比和趋势等,所以许多项目开发中都需要用到图表控件,而很多图表控件都是在.NET平台下开发的,下面是做得比较好的10款图形图表控件,提供了一些简单的介绍,有兴趣者可以查阅详细的资料。 1、LightningChart 快速、先进的2D和3D图表,支持WPF和WinForms平台。LightningChart图形控件彻原创 2017-11-22 20:02:31 · 8010 阅读 · 1 评论 -
详解并发和并行意义
很多人不是特别明白并发编程和并行编程的区别所在,有很多人很容易搞混淆,觉得二者近似相等,本文将用几个浅显易懂的例子,来说明一下什么是并发和并行。1、任务与多任务 关于什么是进程,什么是线程,这里不打算多说,关于每一种开发语言的多线程处理技术语法上有所区别,原理很多类似,可以查阅相关的参考书。什么是任务呢?其实很简单,在我们生活中,比如我今天要学一首歌,要在操场上散步1000米,原创 2017-12-20 10:28:52 · 37091 阅读 · 14 评论 -
异步编程与多线程编程的联系和区别
1、异步编程与多线程的区别共同点:异步和多线程两者都可以达到避免调用线程阻塞的目的,从而提高软件的可响应性不同点: (1)线程不是一个计算机硬件的功能,而是操作系统提供的一种逻辑功能,线程本质上是进程中一段并发运行的代码,所以线程需要操作系统投入CPU资源来运行和调度。 多线程的优点很明显,线程中的处理程序依然是顺序执行,符合普通人的思原创 2017-12-20 14:45:38 · 11582 阅读 · 3 评论 -
一文读懂C#的 堆、栈、值类型、引用类型
前言:C# 的类型系统可分为两种类型,一是值类型,一是引用类型,这个每个C#程序员都了解。还有托管堆,栈,ref,out等等概念也是每个C#程序员都会接触到的概念,也是C#程序员面试经常考到的知识,随便搜搜也有无数的文章讲解相关的概念,貌似没写一篇值类型,引用类型相关博客的不是好的C#程序员。我也凑个热闹,试图彻底讲明白相关的概念。一、程序执行的原理要彻底搞明白那一堆概念及其它们之间的...原创 2018-06-04 23:49:42 · 2072 阅读 · 1 评论 -
C#各语言版本特性介绍
C# 2.0泛型(Generics)泛型是CLR 2.0中引入的最重要的新特性,使得可以在类、方法中对使用的类型进行参数化。例如,这里定义了一个泛型类:class MyCollection<T> { T variable1; private void Add(T param){ } } 使用的时候:MyCollection<string> list2 = new MyCol...转载 2018-05-30 08:45:47 · 977 阅读 · 0 评论 -
C#的单元测试方法
一、 单元测试是软件测试方法的其中一种,其中还有比如动态黑盒测试、数据测试、破坏性测试等等。单元测试也称之为“模块测试”,是对程序设计中的最小单元——函数进行测试的一种方法,所谓测试,就是验证我们自己编写的方法能不能够得到正确的结果,即用方法得到的结果与真实结果进行比对,这就称之为测试。建立单元测试首先需要建立一个测试项目,具体操作如下: 二、 控原创 2017-02-16 12:21:50 · 20576 阅读 · 3 评论