C# - 技术教程文章

XXTEA 加密算法 C++ C#兼容版本号【图】

1.一个不错的可逆加密算法XXTEA之前无意中看到了TexturePacker 使用了XXTEA来加密图片资源。所以花了点时间来看了下XXTEA。一般有两种加密算法:1.像md5,SHA1,等hash算法,是不可逆的。一般数据库存的username和password就用这个。 2.本文所提到的XXTEA算法,是可逆的,有个key能够加密。安全方面的东西还蛮多的,说到key,还有什么public key, private key,我都还给老师了。忘光了。可逆加...

挖一挖C#中那些我们不常用的东西之系列(5)——FlagAttribute【代码】【图】

原文:挖一挖C#中那些我们不常用的东西之系列(5)——FlagAttribute  说到FlagsAttribute,源自前几天看到了一小段代码,大概意思就是根据航班政策来返回哪些配送方式是否可用,根据这些是否可用来隐藏或者开启界面的相关配送方式,如果大家订过机票可能知道配送方式有很多种,比如“无需打印行程单(PJN)”,“机场自取(Airport)”,“市内配送(CND)”,“快递(EMS)”等等。根据上面的逻辑就可以知道,配送方式是有两种状态,可...

C#知识点<4>【代码】

1\C# 运算符重载您可以重定义或重载 C# 中内置的运算符。因此,程序员也可以使用用户自定义类型的运算符。重载运算符是具有特殊名称的函数,是通过关键字 operator 后跟运算符的符号来定义的。与其他函数一样,重载运算符有返回类型和参数列表。例如,请看下面的函数:publicstaticBoxoperator+(Box b,Box c){Box box =newBox();box.length = b.length + c.length;box.breadth = b.breadth + c.breadth;box.height = b.height + c....

C#中static void Main(string[ ] args)中的作用及解释

C#中static void Main(string[ ] args)中的作用及解释 static 表示方法是静态的就是说方法在程序被编译的时候就被分配了内存,使用的时候不用生成某个类型的对象,知道程序退出才释放。 void 表示方法没有返回值,就是方法没有renturn keyword。 main 是方法名,当然这种方法是特殊的方法。是Main()就是说是主函数。就是整个程序的入口,程序被编译后从这里開始运行。这也是main方法要是static的原因,由于在啥都没做的时候这个函...

c# 类的定义说明使用

class A{};class B { void F { A a = new A(); } }//在类B 的方法F 中创建了一个类A 的实例 class A {}class B: A {}//B继承了A 原文:http://www.cnblogs.com/xblydy/p/4338727.html

c# 编程学习(四)【代码】

逻辑AND(逻辑与)操作符(用&&表示)和逻辑OR(逻辑或) 操作符(用||表示)。这两个操作符统称条件逻辑操作符。只有作为操作数的两个布尔表达式都为 true。操作符&&和||都支持短路求值例如,假定操作符&& 的左操作数求值为 false,整个表达式的结果肯定是 false,无论右操作数的值是什么if 语句的语法如下所示(if 和 else 是 C#关键字):if ( booleanExpression ) statement-1; else statement-2; 如果booleanExpression(布尔表达式)求值...

C#中异步和多线程的区别

C#中异步和多线程的区别是什么呢?异步和多线程两者都可以达到避免调用线程阻塞的目的,从而提高软件的可响应性。甚至有些时候我们就认为异步和多线程是等同的概念。但是,异步和多线程还是有一些区别的。而这些区别造成了使用异步和多线程的时机的区别。异步和多线程的区别之异步操作的本质所有的程序最终都会由计算机硬件来执行,所以为了更好的理解异步操作的本质,我们有必要了解一下它的硬件基础。 熟悉电脑硬件的朋友肯定对D...

C# MP3播放帮助类【代码】【图】

本文为原创文章如需转载请注明出处: 1///<summary> 2/// *************************************************3/// 类名:MP3帮助类4/// 修改日期:2016/06/255/// 作者:董兆生6/// 联系方式:QQ4904123237/// *************************************************8///</summary> 9publicclass AudioPlay :IDisposable10 {11///<summary> 12/// 播放状态13///</summary> 14private PlayState _palystate = PlayState.Closed;...

C# 实现数字字符串左补齐0的两种方法【代码】【图】

string sss = string.Format("{0:d8}", 500);MessageBox.Show(sss);return; 代码如上,自动补齐前面的0 原文:http://www.cnblogs.com/testsec/p/6096016.html

C#变量【代码】【图】

什么是变量? 概念:表示一个数据存储空间,内存地址的别名 作用:内存地址是一串十六进制数,非常不好记忆;通过变量可以快速找到数据 变量的三要素 变量类型:规定变量的数据类型 变量名:有意义,好记忆 变量值:变量对应的内存数据 变量的命名 C#中的变量必须先声明后使用,声明变量包括指明变量的数据类型和变量的名称,必要时还可以指定变量的初始数值。变量声明后要用分号,局部变量使用之前要赋初始值。 1staticvoid Main(str...

C#开发奇技淫巧一:调试windows系统服务【图】

原文:C#开发奇技淫巧一:调试windows系统服务windows系统服务不能直接运行,只能在安装完服务之后启动、暂停、继续、停止服务,导致服务的调试不能使用一般的断点调试。要调试系统服务,可以采用附加到进程的方式:在VS的工具栏中找到“调试”这个选项,然后选取“附加到进程”然后选择相应的服务附加,再启动服务即可调试(前提是已经在服务的代码中打上了断点) 不过以上方法不能调试OnStart方法,即服务的启动并不能被调试到,这...

ahjesus 单词单数-复数相互转换C#【代码】

publicstaticclass StringUtil{///<summary>/// 单词变成单数形式///</summary>///<param name="word"></param>///<returns></returns>publicstaticstring ToSingular(string word){Regex plural1 = new Regex("(?<keep>[^aeiou])ies$");Regex plural2 = new Regex("(?<keep>[aeiou]y)s$");Regex plural3 = new Regex("(?<keep>[sxzh])es$");Regex plural4 = new Regex("(?<keep>[^sxzhyu])s$");if (plural1.IsMatch(word))return ...

C#读取Excel的其中一种方式OleDb读取(100万条)--快速大量插入SQL中【代码】【图】

主要运用表类型 1Create table BulkTestTable( 2 Id nvarchar(32), 3 UserName nvarchar(32), 4 Pwd nvarchar(32)5)6Go7CREATE TYPE BulkUdt AS TABLE 8 (Id nvarchar(32), 9 UserName nvarchar(32), 10 Pwd nvarchar(32) )View CodeC#端读取Excel /// <summary>/// 读取Excel中数据/// </summary>/// <param name="strExcelPath"></param>/// <param name="tableName"></param>/// <returns></returns>public DataTable GetEx...

C#多线程--信号量(Semaphore)【代码】【图】

百度百科:Semaphore,是负责协调各个线程, 以保证它们能够正确、合理的使用公共资源。也是操作系统中用于控制进程同步互斥的量。Semaphore常用的方法有两个WaitOne()和Release(),Release()的作用是退出信号量并返回前一个计数,而WaitOne()则是阻止当前线程,直到当前线程的WaitHandle 收到信号。这里我举一个例子让大家更容易理解:当我们这样实例化Semaphore时候Semaphore sema = new Semaphore(x, y);有一队人排队上洗手间,人...

C#语言数据总结【图】

整数类型sbyte -128~127之间byte 0~255short(Int16) -32768~32768ushort(UInt16) 0~65535Int (Int32) -2147483648~2147483647uint(UInt32) 0~4294967295long (Int64) -2exp(31)~2exp(31)ulong(UInt64) 0~2exp(32) 浮点类型Float 32位单精度 6位精度±1.5X10exp(-45)~ ±1.5X10exp(38)Double 64位双精度 15/16位精度±5.0X10exp(-324)~ ±1.7X10exp(308)Decimal 218位高精度 28位精度±1.0X10exp(-28)~ ±7.9X10exp(...

C#实现防拷贝工具示例【代码】【图】

思路是用加密程序 对硬盘号,cpu号和MAC号取出字符串并加密 产生一个序列号每次程序启动后重新产生这个序列号并比对,如果一致则验证通过using System;using System.Collections.Generic;using System.IO;using System.Management;using System.Text;using System.Management.Instrumentation;staticstring GetDeviceNumber(){string deviceinfo = "";string cpuInfo = "";//cpu序列号 ManagementClass cimobject = new Ma...

浅谈C#浅拷贝和深拷贝【代码】【图】

近来爱上一本书《编写高质量代码,改善C#程序的157个建议》,我想很多人都想编写高质量的代码,因为我们不仅仅是码农,更是一名程序员。从今天开始,我将每天和大家分享这本书中的内容,并加上自己的理解,希望可以帮助到更多和我一样盲目的程序员们。今天我们谈谈C#中的对象拷贝问题;所谓的对象拷贝,其实就是为对象创建副本,C#中将拷贝分为两种,分别为浅拷贝和深拷贝;所谓浅拷贝就是将对象中的所有字段复制到新的副本对象中;...

[转]使用C#开发ActiveX控件【代码】【图】

前言ActiveX控件以前也叫做OLE控件,它是微软IE支持的一种软件组件或对象,可以将其插入到Web页面中,实现在浏览器端执行动态程序功能,以增强浏览器端的动态处理能力。通常ActiveX控件都是用C++或VB语言开发,本文介绍另一种方式,在.NET Framework平台上,使用C#语言开发ActiveX控件。虽然本文通篇都在讲如何使用C#语言开发ActiveX控件,但我并不极力推荐使用这种技术,因为该技术存在明显的局限,即需要浏览器端安装.NET Framew...

C#_Stopwatch 类

命名空间:System.DiagnosticsStopwatch 实例可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间。在典型的 Stopwatch 方案中,先调用 Start 方法,然后调用Stop 方法,最后使用 Elapsed 属性检查运行时间。Stopwatch 实例或者在运行,或者已停止;使用 IsRunning 可以确定 Stopwatch 的当前状态。使用 Start 可以开始测量运行时间;使用 Stop 可以停止测量运行时间。通过属性 Elapsed、ElapsedMilliseconds 或 E...

C# 时间计算 今天、昨天、前天、明天 一个月的开始日期与结束日期

C# 时间计算 今天、昨天、前天、明天 class Program { static void Main(string[] args) { DateTime dt1=GetTodayZeroTime(DateTime.Now); Console.WriteLine("今天零点:{0}",dt1.ToString() ); DateTime dt2 = GetYestodayZeroTime(DateTime.Now); Console.WriteLine("昨天零点:{0}", dt2.ToString()); DateTime dt3 = GetDayBeforYest...

C#总结2-2

第四章程序流程 4.01流程图 1流程图:使用标准化的图性方案,分析某个功能的实习步骤。 2.根据功能画出流程图,根据流程图实现代码的编写。将功能分析和代码书写分离,更加专注,便于解决复杂的问题。 3. 4.02if判断 1.其中(条件1)(条件2)为bool类型,(代码1)(代码2)(代码N)可重复任意次数。 2.if判断的功能是对流程控制语句,除此还有,switch表选择,循环语句。 3.三目运算符就是简化版的if判断。 4.判断一个是...

如何在C#中读取打开的excel文件【代码】

如果你直接读就会报错IOException: Sharing violation on path *****因为文件已经被占用 所以你需要用 FileShare.ReadWrite 打开它FileStream stream = File.Open("myfile.xlsx", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);注意要自行排除 ~$ 文件然后将 FileStream转成bytes就可以用了 参考代码/*----------------------读取被打开的Excel文件---------------------*/ FileStream fileStream = File.Open(info.readP...

C# 浅拷贝【代码】【图】

浅拷贝和深拷贝主要体现在引用成员上.先上例子:using System; using System.Collections.Generic; using System.Linq; using System.Text;namespace CopyDemo { /// <summary> /// 人类 /// </summary> public sealed class Person { public string Name { set; get; } public uint age { set; get; } public Person partner { set; get; } } }对Person执行浅拷贝:using System; ...

c#中字符串截取使用的方法(转)

String substring(int beginIndex) String substring(int beginIndex, int endIndex) String.Substring (Int32) 子字符串从指定的字符位置开始。 String.Substring (Int32, Int32) 子字符串从指定的字符位置开始且具有指定的长度。 举例如下: string s = "Hello C# World!"; //s1为从s中截取的位置为3的字符以后的字符子串,3表示子字符串的起始字符位置 string s1=s.Substring(3);...

C#解决Linq OrderBy() 失效的小技巧【代码】

前言 前几天的一个数据列表中我用了Linq GroupBy 和OrderBy。 排序在本机正常使用,发到测试后排序死活不对,很是郁闷,总以为是程序问题。于是请教了另外一个同事。有了以下的答案。 问题原因和解决方法 因为服务器装的是英文版操作系统,没有中文包,所以碰见中文排序无法识别,所以使用OrderBy时需要单独处理下。 CultureInfo culture = CultureInfo.GetCultureInfo("zh-cn");List<TeamDto> teamDtos = teams.GroupBy(x...

C# Expression扩展【代码】

来源:https://www.cnblogs.com/xcsn/p/7285752.html扩展类代码 1///<summary> 2/// Expression表达式扩展操作类3/// 调用方法:repository.GetAll().AsExpandable().Where(predicate)4///</summary> 5publicstaticclass ExpressionExtensions6 {7///<summary> 8/// 以特定的条件运行组合两个Expression表达式9///</summary>10///<typeparam name="T">表达式的主实体类型</typeparam>11///<param name="first">第一个Ex...

c# webapi 在swagger里添加全局过滤器【代码】【图】

Swagger原理  Swagger就是利用反射技术遍历所有Api接口,并且从xml文件中读取注释,在利用Swagger内置的模板组合html显示至客户端实现接口可视化,并且可调用。在WEB Api中,引入了面向切面编程(AOP)的思想,在某些特定的位置可以插入特定的Filter进行过程拦截处理。引入了这一机制可以更好地践行DRY(Don’t Repeat Yourself)思想,通过Filter能统一地对一些通用逻辑进行处理,如:权限校验、参数加解密、参数校验等方面我们都...

C#实现自动单击【代码】【图】

最新玩了一下上学时候玩的游戏,但游戏里面变化太多了,进去后等级就很高,要不停地点击鼠标加技能。所以利用工作中常用的C#调用 API不停地点击鼠标。如图: 为方便在基础上修改,我把整个解决方案放到百度云盘。以下为链接:链接: http://pan.baidu.com/s/1o7t80bS 密码: pehi 先将用到的公用方法贴上来: 1using System;2using System.Collections.Generic;3using System.Diagnostics;4using System.Runtime.InteropServices;5u...

C#语法之特性【代码】【图】

在项目中经常可以看到在类属性上面有一个[]的东西,今天讲的东西就是它,它英文名是Attribute,中文名是特性。一、什么是特性?首先,我们肯定Attribute是一个类,下面是msdn文档对它的描述: 公共语言运行时允许你添加类似关键字的描述声明,叫做attributes, 它对程序中的元素进行标注,如类型、字段、方法和属性等。Attributes和Microsoft .NET Framework文件的元数据保存在一起,可以用来向运行时描述你的代码,或者在程序运行的...

C#获取类以及类下的方法(用于Asp.Net MVC)【代码】

在开发MVC项目中遇到的问题,做权限控制时,通过MVC的过滤器来实现,所以在分配权限时希望获取到所有的控制器和Action方法,通过查找资料,参考了《Asp.Net MVC框架揭秘》,最终实现。在C#中,实现动态获取类和方法主要通过反射来实现,要引用System.Reflection。public ActionResult GetControllerAndAction()List<Type> controllerTypes = new List<Type>(); //创建控制器类型列表var assembly = Assembly.Load("MySoft.UI");...