1 热度

Find, Fix, and Avoid Performance Problems in C# .NET: 10 Best Practices

This article will show 10 best practices on dealing with performance problems, starting with when you need to deal with them at all. You will see techniques to detect if a problem exists, find the specific cause, and fix it.

收录时间: 2019-06-25
分类: C#开发
贡献者: Rector
1 热度

How To Refactor Business Logic Into Services

Refactoring business logic into services

收录时间: 2019-06-25
分类: C#开发
贡献者: Rector
24 热度

C#规范整理&异常与自定义异常

这里会列举在C#中处理CLR异常方面的规范,帮助大家构建和开发一个运行良好和可靠的应用系统。前言迄今为止,CLR异常机制让人关注最多的一点就是“效率”问题。其实,这里存在认识上的误区,因为正常控制流程下的代码运行并不会出现问题,只有引发异常时才会带来效率问题。基于这一点,很多开发者已经达成共识:不应将异常机制用于正常控制流中。达成的另一个共识是:CLR异常机制带来的“效率”问题不足以“抵消”它带来的巨大收益。CLR异常机制至少有以下几个优点:正常控制流会被立即中止,无效值或状态不会在系统中继续传播。提供了统一处理错误的方法。提供了在构造函数、操作符重载及属性中报告异常的便利机制。提供了异常堆栈...

收录时间: 2019-06-24
分类: C#开发
贡献者: Rector
74 热度

C# 从零开始写 SharpDx 应用 绘制基础图形

本文告诉大家通过 SharpDx 画出简单的 2D 界面,本文属于 SharpDx 系列 博客,建议从头开始读,本文分为两步,第一步是初始化,第二步才是画界面...

收录时间: 2019-06-20
分类: C#开发
贡献者: Rector
71 热度

带你了解C#每个版本新特性

上学时学习C#和.NET,当时网上的资源不像现在这样丰富,所以去电脑城买了张盗版的VS2005的光盘,安装时才发现是VS2003,当时有一种被坑的感觉,但也正是如此,让我有了一个完整的.NET的学习生涯。一直都认为学习语言应该系统的进行学习,了解每一个版本的新增特性,才能在实际应用中做到有的放矢。最近发现团队中有不少人虽然用着最新的技术,但知识储备还停留在一个比较初始的状态,这样在编码过程中会走不少弯路。本文梳理下C#从1.0到7.0版本的一些常用特性,对于不常用的或者我没有用到过的一些特性,会列出来,但不会做详细描述。另外C#8.0现在还没有正式推出,并且目前我们也只是在使用dotNet C...

收录时间: 2019-06-20
分类: C#开发
贡献者: Rector
24 热度

使用C#编程实现获取所有Windows服务列表及对Windows服务(Windows Service)的启动/停止/重启的方法

在Windows操作系统中,我们可以在命令提示符中运行servcies.msc打开Windows服务的窗口,这个窗口中会罗列出此操作系统中当前所有已安装的Windows服务。我们可以右键单击任意一个服务,然后对其进行相应的启动/停止/重启等操作,如图:本文将向C#开发者们介绍如何使用编程实现获取所有Windows服务列表及对Windows服务(Windows Service)的启动/停止/重启的方法。

收录时间: 2019-06-18
分类: C#开发
贡献者: Rector
AD 友情赞助
26 热度

PDF File Analyzer With C# Parsing Classes (Version 2.0)

PDF File Analyzer is designed to read, parse, and display the internal structure of PDF files. Version 2.0 supports encrypted files.

收录时间: 2019-06-18
分类: C#开发
贡献者: Rector
17 热度

Using pointers in Image Processing

Using Bitmap class and its methods GetPixel,SetPixel for accessing bitmap's pixels is slow. In this article we will see how to increase the speed of accessing bitmap's pixels with the help of FastBitmap class. As some readers of Fast image processing in C# suggested, we will also write 3 similar programs and compare their preformance. The programs replace the center of an image with its grey version...

收录时间: 2019-06-18
分类: C#开发
贡献者: Rector
18 热度

Parsing HTML data with C#

In this article, I’ll show how to make a query in Bing, retrieve and parse the response. For that, we need to create the query url and pass it to Bing. You may ask why I’m querying Bing and not Google – I’m doing that because Google makes it difficult to get its data, and I want to show you how to use HTML Agility Pack...

收录时间: 2019-06-18
分类: C#开发
贡献者: Rector
21 热度

C# Default Interface Methods Update

As support for Default Interface Methods gets closer to completion, potential issues were raised. While much has been accomplished, this is a complex feature and many of the specifics haven’t been settled yet. But to begin with, here are some of the resolved questions.

收录时间: 2019-06-18
分类: C#开发
贡献者: Rector
45 热度

How to Debug LINQ queries in C#

LINQ is one of my favorite features in C#. It just makes the code look nicer. Instead of tedious foreach loops, we got a neat functional syntax that’s easy to write and understand. Well, at least if we’re using the method syntaxflavor of LINQ.LINQ is also terrible to debug. We have no way of knowing...

收录时间: 2019-06-14
分类: C#开发
贡献者: Rector
31 热度

C#内存管理—职场生存的必修课

C#语言开发的程序所使用的内存,我们称之为托管内存。那么什么是托管内存呢?我们可以先理解为,C#专用内存;即当C#的程序运行起来,会向电脑内存申请一块专用的内存区,而这块内存区,就叫做托管内存。在C#语言开发的程序中,我们所声明的变量,不论是常量,还变量,都在这块内存中。即,我们声明一个int k或是声明一个对象 new Class,他们都是在这块内存中的...

收录时间: 2019-06-13
分类: C#开发
贡献者: Rector
49 热度

C#匿名类型详解--什么是C#匿名类型?C#匿名类型有哪些特征?

什么是C#匿名类型?顾名思义,C#中的匿名类型是没有名称的类型,或者您可以在不定义它们的情况下创建新类型。C#匿名类型是在C#3.0中被引入的。它是一个临时数据类型,基于对象初始化器中的数据来推断。或者换句话说,匿名类型提供了一种有效的方法,可以将一组只读对象组合到一个对象中,而不需要显式定义这个数据类型。匿名类型的类型由编译器根据分配给其属性的值自动生成。C#匿名类型使用关键字var声明,并使用new关键字初始化一个匿名类型...

收录时间: 2019-06-13
分类: C#开发
贡献者: Rector
25 热度

Conditional Ref, Ref ReadOnly, Ref Reassignment in C# 7.X

C# has gone through the major changes starting from 6.0 specifically from 7.0. I wrote a list of posts on C# new features which covers key topics that can be used in our day to day programming. You can find the previous posts list below. Today we are going to discuss few uses of ref which provided altogether different meaning to it...

收录时间: 2019-06-12
分类: C#开发
贡献者: Rector
53 热度

C# 9.0新特性

看到标题,是不是认为我把标题写错了?是的,C# 8.0还未正式发布,在官网它的最新版本还是Preview 5,通往C#9的漫长道路却已经开始.前写天收到了活跃在C#一线的BASSAM ALUGILI给我分享C# 9.0新特性,我在他文章的基础上进行翻译,希望能对大家有所帮助.这是世界上第一篇关于C#9候选功能的文章。阅读完本文后,你将会为未来可能遇到的C# 9.0新特性做好更充分的准备。这篇文章基于,C# 9.0候选新特性原生大小的数字类型这次引入一组新类型(nint,nuint,nfloat等)'n'表示native(原生),该特性允许声...

收录时间: 2019-06-11
分类: C#开发
贡献者: Rector
AD 友情赞助
36 热度

How Can We Efficiently Sort Socks with C#?

In this post, we're going to see five, yes, FIVE different potential solutions to sorting a huge pile of socks. These five solutions exist in the corresponding sample C# project on GitHub. We'll walk through why some are better than others, and hopefully come up with a way to efficiently sort socks.

收录时间: 2019-06-04
分类: C#开发
贡献者: Rector
36 热度

C#/.NET应用程序编程开发中如何根据主键读取或者设置(改变)特定的系统环境变量的值

在Windows操作系统,使用C#进行应用程序编程开发时,如何检测指定的环境变量是否存在?如果不存在,又怎样使用C#设置指定环境变量的值呢?方案一在.NET Framework中内置了可以操作Windows操作系统的类System.Environment...

收录时间: 2019-06-04
分类: C#开发
贡献者: Rector
36 热度

C# Queue与RabbitMQ的爱恨情仇(文末附源码):Q与MQ消息队列简单应用(二)

上一章我们讲了队列( Queue),这一章我们讲Message Queue消息队列,简称MQ。定义:MQ是MessageQueue,消息队列的简称(是流行的开源消息队列系统,利用erlang语言开发)。MQ是一种应用程序对应用程序的通信方法。应用程序通过读写入队和出队的消息来通信...

收录时间: 2019-06-04
分类: C#开发
贡献者: Rector
42 热度

C# Queue与RabbitMQ的爱恨情仇(文末附源码):Q与MQ消息队列简单应用(一)

首先我们简单了解一下什么堆、栈、队列。堆是在程序运行时,而不是在程序编译时,申请某个大小的内存空间。即动态分配内存,对其访问和对一般内存的访问没有区别。栈就是一个容器,后放进去的先拿出来,它下面本来有的东西要等它出来之后才能出来。(先进后出or后进先出)队列只能在队头做删除操作,在队尾做插入操作.而栈只能在栈顶做插入和删除操作。(先进先出) 注意:当前展示的是队列(Queue),下一章展示消息队列MQ(Message Queue)队列(Queue)代表了一个先进先出的对象集合。当您需要对各项进行先进先出的访问时,则使用队列。当您在列表中添加一项,称为入队,当您从列表中移除一项时,称为出队...

收录时间: 2019-06-03
分类: C#开发
贡献者: Rector
42 热度

C# 匹配可空变量

在 C# 7.0 的时候提供更好用的模式匹配方法,支持通过 is 直接转换对应的类,但是如果是尝试转换可空的对象,那么将会提示无法编译,或转换失败。在 C# 7.0 的 is 转换是十分好用的功能,例如我写了一个 Foo 函数,支持将传入的参数转换...

收录时间: 2019-06-03
分类: C#开发
贡献者: Rector
AD 友情赞助