【专题】C#系列
文章平均质量分 65
三天不学习
学海无涯回头是岸
展开
-
C#6.0中10大新特性的应用和总结
微软发布C#6.0、VS2015等系列产品也有一段时间了,但是网上的教程却不多,这里真对C#6.0给大家做了一些示例,分享给大家。微软于2015年7月21日发布了Visual Studio 2015, .NET 2015, .NET Framework 4.6, ASP.NET 4.6, Azure SDK 2.7 for .NET, C# 6.0, F# 4.0, Typ原创 2017-01-12 14:04:08 · 7002 阅读 · 1 评论 -
C# 5.0五大新特性
第一:绑定运算符,:=:这个只是简化了数据绑定,跟ASP.NET MVC3不断改进一样,其实不是什么亮点改进。comboBox1.Text :=: textBox1.Text; //将文本框的内容绑定到下拉框。第二:带参数的泛型构造函数:这个的加入给一些设计增加了强大功能,泛型早在C#2.0加入后就有着强大的应用,一般稍微设计比较好的框架,都会用到泛型,C#5.0加原创 2017-01-12 14:15:05 · 9603 阅读 · 1 评论 -
C#中Socket通信编程的异步实现
本文将在C#中Socket同步通信的基础上,分析和研究Socket异步编程的实现方法,目的是深入了解Socket编程的基本原理,增强对网络游戏开发相关内容的认识。什么是Socket编程的异步是实现所谓Socket编程的异步实现是指按照异步过程来实现Socket编程,那么什么是异步过程呢,我们把在完成了一次调用后通过状态、通知和回调来告知调用者的方式成为异步过程,换句话说,在异步过程转载 2016-06-30 15:49:26 · 32981 阅读 · 8 评论 -
相同结构的两个类赋值
public static D Mapper(S s) { D d = Activator.CreateInstance(); try { var sType = s.GetType(); var dType = typeof(D);原创 2017-02-21 10:22:01 · 1280 阅读 · 0 评论 -
待毕业.Net码农就业求职储备
声明:本文题目来源于互联网,仅供即将从学校毕业的.Net码农(当然,我本人也是菜逼一个)学习之用。当然,学习了这些题目不一定会拿到offer,但是针对就业求职做些针对性的准备也是不错的。此外,除了技术上的准备外,要想得到提升,还得深入内部原理,阅读一些经典书籍(例如Jeffrey Richter的《CLR via C#》)以及借助Reflector或ILSpy反编译查看源码实现,知其然也知转载 2016-07-06 17:38:19 · 1056 阅读 · 0 评论 -
协变、逆变、不变体
简述什么是协变性、逆变性、不变性协变性,如:string->object (子类到父类的转换)逆变性,如:object->string (父类到子类的转换)不变性,基于上面两种情况,不可变。具体下面再做分析。泛型委托的可变性先使用框架定义的泛型委托Func和Action做例子(不了解的请戳)协变:(string->object)Funcstrin转载 2017-02-17 10:06:05 · 473 阅读 · 0 评论 -
.NET平台开源JSON库LitJSON的使用方法
下载地址:LitJson.dll下载一个简单示例:String str = "{’name’:’cyf’,’id’:10,’items’:[{’itemid’:1001,’itemname’:’hello’},{’itemid’:1002,’itemname’:’hello2’}]}"; //*** 读取JSON字符串中的数据 **************原创 2017-01-16 10:58:45 · 1046 阅读 · 0 评论 -
C#网络编程——第一篇 基础之进程线程
在C#的网络编程中,进程和线程是必备的基础知识,同时也是一个重点,所以我们要好好的掌握一下。一:概念 首先我们要知道什么是”进程”,什么是“线程”,好,查一下baike。 进程:是一个具有一定独立功能的程序关于某个数据集合的一次活动。它是操作系统动态执行的基本单元, 在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单转载 2017-01-11 14:59:14 · 615 阅读 · 0 评论 -
《C#类设计手册》基础知识要点
应该说是对了解一些基本概念十分好的书,虽然编写了这么长时间的C#程序,但翻了两天,也感觉有些东西可以吸取的。(权当这里作为读书笔记的摘要 ^_^)几个缩写术语:CTS Common Type System 通用类型系统CLS Common Language Specification 公共语言规范CLR Common Language Runtime 公共语言运行时原创 2016-06-28 09:23:07 · 1342 阅读 · 0 评论 -
DataTable 该行已经属于另一个表
DataTable dt = new DataTable();dt = ds.Tables["All"].Clone();//把All的结构传递给dtDataRow[] dr=this.dataSet31.Tables["Product"].Select("bc=1");for(int i=0;i<dr.Length;i++){//将数组元素加入表...dt.Rows.Add(dr[i原创 2017-02-06 15:15:11 · 4611 阅读 · 0 评论 -
浅析C#深拷贝与浅拷贝
1.深拷贝与浅拷贝 拷贝即是通常所说的复制(Copy)或克隆(Clone),对象的拷贝也就是从现有对象复制一个“一模一样”的新对象出来。虽然都是复制对象,但是不同的 复制方法,复制出来的新对象却并非完全一模一样,对象内部存在着一些差异。通常的拷贝方法有两种,即深拷贝和浅拷贝,那二者之间有何区别呢?MSDN里对 IClone接口的Clone方法有这样的说明:在深层副本中,所有的对转载 2017-02-06 15:09:03 · 343 阅读 · 0 评论 -
类型参数的约束(C# 编程指南)
类型参数的约束(C# 编程指南)在定义泛型类时,可以对客户端代码能够在实例化类时用于类型参数的类型种类施加限制。如果客户端代码尝试使用某个约束所不允许的类型来实例化类,则会产生编译时错误。这些限制称为约束。约束是使用 where 上下文关键字指定的。下表列出了六种类型的约束:约束说明T:结构类型参数必须是值类型转载 2017-02-06 14:58:00 · 441 阅读 · 0 评论 -
C# 字符串操作——性能优化细节
1、使用string.Empty给一个空字符串变量赋初始值String.Empty是一个指代,而””是具体的实现1、使用string.Empty给一个空字符串变量赋初始值 String.Empty是一个指代,而””是具体的实现 [csharp] view plain copy string filter=“”;//不建议原创 2017-02-06 11:28:36 · 6157 阅读 · 1 评论 -
C# 反射详解
版权声明:作者:jiankunking 出处:http://blog.csdn.net/jiankunking 本文版权归作者和CSDN共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。转载 2017-02-06 11:07:10 · 382 阅读 · 0 评论 -
Npoi导出excel整理(附源码)
Npoi导出excel整理(附源码) 前些日子做了一个简单的winform程序,需要导出的功能,刚开始省事直接使用微软的组件,但是导出之后发现效率极其低下,绝对像web那样使用npoi组件,因此简单的进行了整理,包括直接根据DataTable导出excel及DataGridview导出excel,版本是1.2.4,下面贴下主要代码两种方式,1、NPOI导出exce转载 2016-04-06 15:20:19 · 1278 阅读 · 0 评论 -
基于.NET平台常用的框架整理
自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累了一些开源的组件,就目前想到的先整理于此,如果再想到,就继续补充这篇日志,日积月累,就能形成一个自己的组件经验库。分布式缓存框架:Microsoft Velocity:微软自家分布式缓存服务框架。Memcahed:一套分布式的高速缓转载 2017-06-20 17:59:22 · 1134 阅读 · 3 评论 -
C#7.0中有哪些新特性?
C#7.0 增加了许多新功能,并专注于数据消费,简化代码和性能的改善。或许最大的特性就是元组和模式匹配,元组可以很容易地拥有多个返回结果,而模型匹配可以根据数据的“形”的不同来简化代码。我们希望,将它们结合起来,从而使你的代码更加简洁高效,也可以使你更加快乐并富有成效。请点击 Visual Studio 窗口顶部的反馈按钮,告诉我们哪些是你不期待的特性或者你关于提升这些特性的思考。还有许多原创 2017-06-19 16:11:22 · 526 阅读 · 0 评论 -
NPOI使用手册
NPOI使用手册目录1.认识NPOI 2. 使用NPOI生成xls文件2.1 创建基本内容2.1.1创建Workbook和Sheet2.1.2创建DocumentSummaryInformation和SummaryInformation2.1.3创建单元格2.1.5创建批注2.1.6创建页眉和页脚 2.2 单元格操作2.2.1设置格式2.2.2合并单元格2.2.3对齐相关设置2.2.4使用边框...转载 2016-04-19 17:07:12 · 2313 阅读 · 0 评论 -
ASP.NET反射
两个现实中的例子:1、B超:大家体检的时候大概都做过B超吧,B超可以透过肚皮探测到你内脏的生理情况。这是如何做到的呢?B超是B型超声波,它可以透过肚皮通过向你体内发射B型超声波,当超声波遇到内脏壁的时候就会产生一定的“回音”反射,然后把“回音”进行处理就可以显示出内脏的情况了(我不是医生也不是声学专家,不知说得是否准确^_^)。2、地球内部结构:地球的内部结构大体可以分为三层:地壳、地原创 2016-04-06 11:43:35 · 1010 阅读 · 0 评论 -
学通C#网络编程——第四篇 TCP应用编程
年底了,人浮躁多了,沉不下去心研究技术了,不过昨天终于抢到了回家的票,很开心。 言归正卷,在WCF出来之后,可能我们玩这些原始的TCP越来越少了,我们知道WCF对TCP进行了再一次的包装,第一反应给我们的或许是同构系统用TCP,异构系统用HTTP,那么问题来了,异构系统到底可不可以用TCP呢?至少WCF是玩不了的,因为其他语言没有针对.net的“服务引用”,也没有什么转载 2017-01-11 15:07:08 · 502 阅读 · 0 评论 -
C#网络编程——第三篇 HTTP应用编程(下)
第三篇来的好晚啊,上一篇说了如何向服务器推送信息,这一篇我们看看如何"快好准"的从服务器下拉信息。 网络上有很多大资源文件,比如供人下载的zip包,电影(你懂的),那么我们如何快速的进行下载,大家第一反应肯定就是多线程下载,那么这些东西是如何做的呢?首先我们可以从“QQ的中转站里面拉一个rar下来“。然后用fiddler监视一下,我们会发现一个有趣的现象:第一:7.62*转载 2017-01-11 15:03:14 · 803 阅读 · 0 评论 -
C#网络编程——第二篇 HTTP应用编程(上)
我们学习网络编程最熟悉的莫过于Http,好,我们就从Http入手,首先我们肯定要了解一下http的基本原理和作为,对http的工作原理有一定程度的掌握,对我们下面的学习都是有很大帮助的。 一: 工作方式 ①:client和server建立可靠的TCP连接。 ②:然后client通过Socket向server发送http请求。 ③:s转载 2017-01-11 15:01:21 · 488 阅读 · 0 评论 -
TOKEN+签名验证
首先问大家一个问题,你在写开放的API接口时是如何保证数据的安全性的?先来看看有哪些安全性问题在开放的api接口中,我们通过http Post或者Get方式请求服务器的时候,会面临着许多的安全性问题,例如:请求来源(身份)是否合法?请求参数被篡改?请求的唯一性(不可复制),防止请求被恶意攻击为了保证数据在通信时的安全性,我们可以采用TOKEN+参数签名的方式来进行相关验证。转载 2018-01-10 11:36:46 · 765 阅读 · 0 评论 -
asp.net 枚举转换
一、在学习枚举之前,首先来听听枚举的优点。 1、枚举能够使代码更加清晰,它允许使用描述性的名称表示整数值。 2、枚举使代码更易于维护,有助于确保给变量指定合法的、期望的值。 3、枚举使代码更易输入。二、枚举说明 1、简单枚举枚举使用enum关键字来声明,与类同级。枚举本身可以有修饰符,但枚举的成员始终是公共的,不能有访问修饰符。枚举本身的修饰符仅能使用publi原创 2016-04-06 14:13:37 · 2161 阅读 · 0 评论 -
C# 浅拷贝与深拷贝区别
也许会有人这样解释C# 中浅拷贝与深拷贝区别: 浅拷贝是对引用类型拷贝地址,对值类型直接进行拷贝。不能说它完全错误,但至少还不够严谨。比如:string 类型咋说? 其实,我们可以通过实践来寻找答案。首先,定义以下类型:int 、string 、enum 、struct 、class 、int[ ] 、string[ ]代码如下:转载 2016-04-06 11:20:08 · 481 阅读 · 0 评论 -
获取应用程序根目录物理路径(Web and Windows)
这两个计划写一个小类库,需要在不同项目下任意调用。该类库需要对磁盘文件进行读写,所以就需要获取程序执行的磁盘路径,就简单的对获取磁盘路径的方法进行研究。 借助搜索引擎,我从网上搜罗来多种方法,都可以直接或间接的获取到应用程序执行的根目录。大概总结一下,一共有以下 11 种: Server.MapPath("~") //使用 HTTP 上下文中的 Server 对象来获取Web站点的根...转载 2017-09-12 10:27:30 · 2006 阅读 · 0 评论 -
asp.net中执行exe应用程序
在asp.net中执行应用程序有两种方法:1、调用win32函数ShellExecute。2、用.NET Framework中的Process类。下面我分别用这两种方法执行Windows中的记事本程序notepad.exe。新建一个ASP.Net页面Default.aspx,在上面放一个按钮,进入Default.aspx.cs页面填写后台处理程序。1、调用win32函数ShellExecu转载 2018-01-05 09:32:56 · 2642 阅读 · 0 评论 -
fullavatareditor 富头像上传编辑器
富头像编辑器是一个很好的头像图片上传控件,能够对图片进行简单的处理,例如:剪切、调节亮度等功能;富头像编辑器拥有很的参数配置,可根据自己的需要配置控件的功能;该控件要求浏览器需安装Flash Player后才能使用;下面是我做的一个小的Demo以说明富头像编辑器的使用方法。1.前台页面 需引用js文件和初始化富头像编辑器,脚本代码如下: Simple d原创 2017-12-05 15:00:03 · 4314 阅读 · 0 评论 -
SSO-C#跨域单点登录(二)
开始新建一个站点SiteA,同时引用前面建的web服务:创建BasePage.cs类: /// /// 页面基类 /// public class BasePage : Page { protected override void OnLoad(EventArgs e) { if (!IsP转载 2017-12-13 17:17:07 · 1438 阅读 · 0 评论 -
SSO-C#跨域单点登录(一)
开篇就是定义Model,数据为先: public class Something { public const string CookieName = "User"; public const double TimeOut = 1; } public class Use转载 2017-12-13 17:13:35 · 1016 阅读 · 0 评论 -
VSCode的快捷键
前言VSCode的快捷键继承了一些IDE风格,有VS的身影,也有Emacs的身影。。简言之,内置快捷键玩熟了,效率提高不是一点两点。VsCode 快捷键有五种组合方式(科普)Ctrl + Shift + ? : 这种常规组合按钮Ctrl + V Ctrl +V : 同时依赖一个按键的组合Shift + V c : 先组合后单键的输入Ctrl + Click: 键盘 + 鼠标点击原创 2017-12-13 16:43:25 · 510 阅读 · 0 评论 -
Path.Combine (合并两个路径字符串)方法的一些使用细节
System.IO.Path.Combine 简单来说,就是合并两个路径字符串。比如如下调用,Path.Combine(@"C:\11","aa.txt") 返回的字符串路径如后: C:\11\aa.txt这个方法的声明如下:public static string Combine ( string path1, string path2 )我们在合并一些目录的时候,它的两个参数有原创 2017-09-12 10:19:01 · 1057 阅读 · 0 评论 -
.Net4.0 任务(Task)
任务(Task)是一个管理并行工作单元的轻量级对象。它通过使用CLR的线程池来避免启动专用线程,可以更有效率的利用线程池。System.Threading.Tasks 命名空间下任务相关类一览:类作用Task管理工作单元Task管理带返回值的工作单元TaskFactory创建任务转载 2017-08-23 17:13:14 · 1162 阅读 · 0 评论 -
Excel 导入导出类
#region 导出到Excel /// /// 导出到Excel /// /// 数据源 /// 标题 /// public static System.IO.MemoryStream ToExcel(DataTable table, string title)原创 2016-12-29 10:41:00 · 524 阅读 · 0 评论 -
WebAPI 和 webservice的区别
WebAPI 和 WebService的区别webapi用的是http协议,webservice用的是soap协议 webapi无状态,相对webservice更轻量级。webapi支持如get,post等http操作http soap关系http:是一个客户端和服务器端请求和应答的标准(TCP)。http协议其目的是为了提供一种发布和接收htttp页面的方法一http协议的客转载 2016-11-26 17:17:10 · 10694 阅读 · 0 评论 -
C#Windows服务:一些方法(启动、停止等)
/// /// 判断是否安装了某个服务 /// /// /// public static bool ISWindowsServiceInstalled(string serviceName) { try {原创 2016-04-06 11:58:38 · 4521 阅读 · 0 评论 -
文件模糊查询
#region private void SearchFile(string startdir, string filter, string enddir) 文件模糊查询 /// /// 文件模糊查询 /// /// 查询目录:例如@"D:\ImportImages" /// 过滤条件:例如201原创 2016-04-06 11:59:29 · 1855 阅读 · 0 评论 -
DataTable转JSON
#region dataTable转换成Json格式 /// /// dataTable转换成Json格式 /// /// /// public static string ToJson(DataTable dt) { StringBuilder jsonBuilder原创 2016-04-06 11:35:28 · 608 阅读 · 0 评论 -
C#目录文件监控
class Program { static void Main(string[] args) { WatcherStrat(@"D:\spring\Program", "*.*"); Console.ReadKey(); } pri原创 2016-04-06 13:59:18 · 1413 阅读 · 0 评论 -
C# 上传文件并生成缩略图
#region 上传文件并生成缩略图 /// /// 上传文件并生成缩略图 /// /// 上传控件 /// 上传目标虚拟路径 /// 用户自定义创建文件夹 /// 存放原始文件夹 /// 存放缩略图原创 2016-04-06 14:09:49 · 2239 阅读 · 0 评论