C# - 技术教程文章

C# 异步并发操作,只保留最后一次操作【代码】【图】

在我们业务操作时,难免会有多次操作,我们期望什么结果呢?绝大部分情况,应该是只需要最后一次操作的结果,其它操作应该无效。自定义等待的任务类1. 可等待的任务类 AwaitableTask: 1///<summary> 2/// 可等待的任务3///</summary> 4publicclass AwaitableTask5 {6///<summary> 7/// 获取任务是否为不可执行状态8///</summary> 9publicbool NotExecutable { get; privateset; }10 11///<summary> 12/// 设置任务不可执行...

C#基本语法复习-方法与作用域

重载方法:  只能够对参数列表进行重载,不能够对返回类型进行重载。定义可选参数:  指定一个参数是可选的,可以在定义方法时为该参数提供一个默认值,默认值是使用赋值操作符来进行赋值的。并且所有的可选参数必须放在必选参数之后。形式如下:  void a(int a,int b=0;string c="a")  {  }  对方法进行调用时,方法调用最匹配的那个,a(2)是正确的,但是a(2,"e");则为错误,编译器会选择前两个int来匹配。命名参数:...

c#的unity【代码】

1.引用对象2.在app.config中进行配置 <?xml version="1.0" encoding="utf-8" ?> <configuration><configSections><section name="unity"type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration" /></configSections><unity configSource="unity.config" /></configuration> 这里unity的配置是在unity.config中进行配置的。代码如下:<unity xmlns="http://schemas.m...

C#在Linux+Mono环境中使用微信支付证书【代码】

最近特殊的需求,要把微信平台一个功能页面部署到Linux(CentOS6.5)下,其中涉及到微信支付退款。鉴于之前实践过mono+jexus+asp.net mvc的部署,于是问题重点在于解决对商户证书的调用问题。 查看微信支付官方文档关于证书的使用说明◆ apiclient_cert.p12是商户证书文件,除PHP外的开发均使用此证书文件。◆ 商户如果使用.NET环境开发,请确认Framework版本大于2.0,必须在操作系统上双击安装证书apiclient_cert.p12后才能被正常...

c#中和java中可变参数对比【代码】

c#中可变参数用关键字paramsCode public class App {static void Main() {//常规使用方法Console.WriteLine( Add( new Int32[] { 1, 2, 3, 4, 5 } ) );//另一种调用方法Console.WriteLine( Add( 1, 2, 3, 4, 5 ) );//当然,参数数目是可变的,但其类型是被约束的Console.WriteLine( Add( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ) );//如果类型可变,数目可变怎么办?书给出的答案非常简单,就是使用object类型即可//备注下...

C# 从零开始 vol.1【代码】

说好的java只能先坑了,毕竟计划赶不上变化,以下是 c# 基础部分。 1:变量,方法的命名方式  目的就是一眼看到实例名 方法名 就知道该变量是做什么的。  主流的命名方式有驼峰命名规则,pascal命名规则,以及匈牙利命名规则。先看案例 :  var NewCamel = new Camel(); //pascal命名规则  var newCamel = new Camel();//驼峰命名规则  var CnewCamel = new Camel();//匈牙利命名规则  其中区别就是 pascal 命名需要...

C# SpinWait

其实SpinWait的code 非常简单,以前看过很多遍,但是从来都没有整理过,整理也是再次学习吧。我们先看看SpinWait的一些评论或者注意点吧:如果等待某个条件满足需要的时间很短,而且不希望发生昂贵的上下文切换,那么基于自旋的等待是一种很好的替换方案,SpinWait不仅提供了基本自旋功能,而且还提供了SpinWait.SpinUntil方法,使用这个方法能够自旋直到满足某个条件为止,此外SpinWait是一个Struct,从内存的角度上说,开销很小。...

C# npoi-word

//新建段落 XWPFParagraph p1 = doc.CreateParagraph();//对齐方式 p1.SetAlignment(ParagraphAlignment.LEFT);p1.SetVerticalAlignment(TextAlignment.AUTO);//Word边框样式p1.SetBorderBottom(Borders.DOUBLE);p1.SetBorderTop(Borders.DOUBLE);p1.SetBorderRight(Borders.DOUBLE);p1.SetBorderLeft(Borders.DOUBLE);p1.SetBorderBetween(Borders.SINGLE); //新建文字 XWPFRun rUserHead = p1.Create...

asp.net中后台c#数组与前台js数组交互

在上一篇《asp.net中javascript与后台c#交互》中实现了前端脚本javascript调用后台的数据库的数据。但新的问题又出现了,由于地图上有多个点,所以存放google maps的longitude和latitude有多个值,这就需要利用数组来存放经纬度,问题又演变成如何把后台的c#数组传给前端的js。由于刚接触asp.net和前端这块,基本是零基础,所以这个问题困扰了很久,上网查资料,后来在一篇文章中看到解决办法,但文章中的方法处理的是定长数组,而...

面试常考各类排序算法总结.(c#) 原文来自https://www.cnblogs.com/geduocoding/p/7097870.html【代码】【图】

前言面试以及考试过程中必会出现一道排序算法面试题,为了加深对排序算法的理解,在此我对各种排序算法做个总结归纳。1、冒泡排序算法(BubbleSort)1.1 算法描述(1)比较相邻的元素。如果第一个比第二个大,就交换他们两个。(2)对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。(3)针对所有的元素重复以上的步骤,除了最后一个。(4)持续每次对越来越少的元素重复上面的步...

C#自定义控件(3)—PanelHead控件【代码】【图】

有时候我们会需要这样一种控件效果,上面是标题,下面是另外一个区域,且分别需要设置不同的颜色等,当然我们可以使用splitContainer控件来制作,也可以直接使用自定义控件来,这样可以减少一定的麻烦。添加一个组件并继承Panel类,对Panel进行扩展。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Drawing; using System.Linq; using System.Text; usi...

C#复习总结6 (需要进一步复习)【图】

第十七章 泛型 什么是泛型 泛型是为了适应多种不同种类的数据类型而存在的。有了它之后,我们可以不用为不同的数据类型而单独写一个适配。这样很麻烦。 类型不是对象,而是对象的模板。泛型类型也不是类型,而是类型的模板。 写法 C++中,写法比c#中多了一点东西。 Template <typename T> 申明完之后,然后才用T。 C#中,直接用 Class MyStack<T> ?步骤: 声明泛型类型、通过提供真实类型构建构造类型、从构造类型创建实例...

C# 请求数据 方式1【代码】【图】

publicstaticstring PostWebRequest2(){HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://183.66.231.18:8184/api/services/app/ChildSystem/checkLogin");//这是你要提交的urlEncoding encoding = Encoding.UTF8;IDictionary<string, string> para = new Dictionary<string, string>();para.Add("ticket", "22d0a6a46bbdf44ec718f600b012b261");StringBuilder buffer = new StringBuilder();//这是要提交的数...

C# DLL 反编译改代码【图】

使用微软的 ildasm.exe(反编译工具),工具路径视Visual Studio的组件安装目录而定,我的是在 C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\ildasm.exe 打开DLL 或者EXE 文件 打开之后,再选择文件 => 转储 , 将现有的DLL文件转储,就是另存为可编辑的 .il ,存储最好另起一个文件夹,因为转储出来是N个文件,主要对 .il 文件进行修改 修改某个属性的Set方法代码,如下 将 set中的if代码段去掉,修...

C#中将string转换为float【代码】

string s = "123.2";//方法1float f1 = Convert.ToSingle(s);//方法2float f2;if (!float.TryParse(s, out f2)){Console.WriteLine("无法转换!");} float volume = 0.5F; //double 转float 原文:http://www.cnblogs.com/tanrong/p/7074253.html

C#'~'按位取反运算符的使用【代码】【图】

按位取反运算符是按照二进制的每一位取反,比如byte类型,~0的结果就是255。该功能可以在mask中做一些反转操作 如下代码,a存放了2,4,8三个值。用按位取反‘~‘运算符反转打印结果是 false,flase,false,true,trueclass Program {staticvoid Main(string[] args){byte a = 2 | 4 | 8;byte b = (byte)~a;Console.WriteLine((b & 2) == 2);Console.WriteLine((b & 4) == 4);Console.WriteLine((b & 8) == 8);Console.WriteLine((b & 1...

c# 反射【代码】

根据程序集的信息,动态的创建类并执行方法using System; using System.IO; using System.Reflection; using System.Runtime.Serialization.Formatters.Binary;namespace ConsoleApplication1 {internalclass Program{publicclass Test{publicvoid Show(){Console.WriteLine("zk");}}privatestaticvoid Main(string[] args){//获得当前执行模块Assembly assem = Assembly.GetExecutingAssembly();Console.WriteLine(assem.FullName...

【转】编写高质量代码改善C#程序的157个建议——建议7: 将0值作为枚举的默认值【代码】

建议7: 将0值作为枚举的默认值允许使用的枚举类型有byte、sbyte、short、ushort、int、uint、long和ulong。应该始终将0值作为枚举类型的默认值。不过,这样做不是因为允许使用的枚举类型在声明时的默认值是0值,而是有工程上的意义。试想,一个代表星期的枚举类Week,我们会想当然地认为它应该有7个元素,代码如下所示:enum Week { Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4, Friday = 5, Saturday = 6, Su...

Oraclee 事务处理以及在c#中使用oracle的事务处理【转载】

1、 savepoint(建立保存点,用于失误时回滚到保存点)建立保存点a1:savepoint a1;............................[其间干了很多事]再建立保存点a2:savepoint a2;............................[又再干了很多事]回滚到a2保存点:rollback to a2;回滚到a1保存点:rollback to a1;如果不指定保存点即为取消全部事务,如:rollback;注意:如果建立保存点后执行过:commit语句,则为提出交事务,确认事务变化、结束事务、删除所有保存点...

UNIX 时间戳 C#

/// 将Unix时间戳转换为DateTime类型时间 /// </summary> /// <param name="d">double 型数字</param> /// <returns>DateTime</returns> public static System.DateTime ConvertIntDateTime(double d) { System.DateTime time = System.DateTime.MinValue; System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); ...

一个常用的C#读取文本的方法【代码】

个人认为这段代码可读性不是很好,因为我用了这么久看起来还是很不顺眼~! 但是实用还是非常实用的, 记录下来,以后有需要直接取走吧~PS:遍历行数读取对应值的时候, 遍历值要+1, 因为遍历默认是从表头开始的,而真正的值是从第二行开始的, +1即从第二行开始遍历 using UnityEngine; using System.Collections; using System.Collections.Generic;public class LoadText : MonoBehaviour {public string dataName;string[][] ...

4.C#WinForm基础图片(显示和隐藏)【代码】【图】

要求:软件上有一张图片,默认是隐藏的。用户在文本框中输入身份证号(131226198105223452),点击按钮,如果年龄大于18岁,则显示图片。知识点: 取当前年份,Date Time Now Year所需用到的函数 函数一: string string.Substring(int startIndex,int length)(+1重载) 从此实例检索字符串。子字符串从指定的字符位置开始且具有指定的长度 异常: ...

温故知新---重读C#InDepth(一)【代码】

一本好书,或是一本比较有深度的书,就是每次研读的时候都会有新的发现。好吧,我承认每次读的时候都有泛泛而过的嫌疑~~这几年一直专注于C#客户端的开发,逐步从迷迷糊糊,到一知半解,再到自以为是,最后沉下心重新审视。也许这也是一种进步一种自我学习的过程。前面啰嗦了这么多,希望大家也能不那么浮躁的“深入理解”C#这么语言的每个知识点。本文总结书本中的知识,在结合实际应用场合进行概述,如果有不正确的地方,还请不吝...

[小北De编程手记] : Lesson 08 - Selenium For C# 之 PageFactory & 团队构建【代码】

本文想跟大家分享的是Selenium对PageObject模式的支持和自动化测试团队的构建。《Selenium For C#》系列的文章写到这里已经接近尾声了,如果之前的文章你是一篇篇的读下来并动手实践的话,我相信你应该可以模拟日常工作中80%常见的手动测试用例了。请注意:我的用词是模拟用例,而不是书写自动化测试用例。一个企业级的自动化测试的构建不是单靠Selenium一种技术就能Hold住的。所谓模拟指的是只能实现自动化的某个Case,但是不能工...

.NET深入实战系列—Linq to Sql进阶【图】

最近在写代码的过程中用到了Linq查询,在查找资料的过程中发现网上的资料千奇百怪,于是自己整理了一些关于Linq中容易让人困惑的地方。本文全部代码基于:UserInfo与Class两个表,其中Class中的UserId与UserInfo中的Id对应 本文唯一访问地址:http://www.cnblogs.com/yubaolee/p/BestLinqQuery.htmllinq联合查询内联查询内联是一个实际使用频率很高的查询,它查询两个表共有的且都不为空的部分 from user in UserInfojoin c in Cla...

C# RichTextBox跳转到指定行(文本行跳转和显示行跳转)【代码】【图】

文本行跳转: 对禁止自动换行(WordWrap属性为False)有效1///<summary>跳到指定行</summary>2privatevoid JumpToLine(int lineIndex) 3{ 4 rtxContext.SelectionStart = rtxContext.GetFirstCharIndexFromLine(lineIndex); 5 rtxContext.SelectionLength = 0; 6 rtxContext.Focus(); 7 rtxContext.ScrollToCaret(); 8 } 显示行跳转: 对自动换行(WordWrap属性为True)有效(由于是用Find(),对于内容存在多行文...

C#实现一个最简单的HTTP服务器

简介  本文用C#实现了一个最简单的HTTP服务器类,你可以将它嵌入到自己的项目中,或者也可以阅读代码来学习关于HTTP协议的知识。 背景  高性能的WEB应用一般都架设在强大的WEB服务器上,例如IIS, Apache, 和Tomcat。然而,HTML是非常灵活的UI标记语言,也就是说任何应用和后端服务都可以提供HTML的生成支持。在这个小小的例子中,像IIS,、Apache这样的服务器消耗的资源太大了,我们需要自己实现一个简单的HTTP服务器,将它嵌入...

c# 数据导出成excel 方法总结 见标红部分【代码】

publicvoid ServiceOrderExport(string data){StringBuilder sb = new StringBuilder();Type entityType = null; ;PropertyInfo[] entityProperties = null;var input = data.DeserializeObject<structServiceOrder>();using (var context = SRVDBHelper.DataContext){sb.Remove(0, sb.Length);var results = context.Usp_SRV_CheckServiceOrder(input.ServiceOrderID, input.AcceptWay,input.StatusCode, input.Description, inpu...

C# BigInteger 处理超大整型数字【代码】【图】

今天遇到一个要处理XSD中Integer的数值区间的计算的问题,Integer这个类型的值区间理论上是可没有边界的,假设目前是值的1.5E+10000, 这个数字已经达到double和Int64都无法存储了,同时我还要对如此大的数字进行加减运算,后来发现了BigInteger这个类可以很好的解决我遇到的问题。^_^ BigInteger自.net framework 4.0开始引入, 位于命名空间:namespace System.Numerics设计用于存储超大整型数字,所以只要内存够大,存储是没有上...

[C#]使用iText7.pdfHtml,以HTML为模板,转换成PDF打印【代码】【图】

使用iText7的pdfHtml库,将html转成pdf,官方:https://itextpdf.com/en/demos/convert-html-css-to-pdf-free-online;官方示例:using System.IO; using iText.Html2pdf;namespace WebsiteDemoPdfHtml {class Program{privatestaticstring ORIG = "/uploads/input.html";privatestaticstring OUTPUT_FOLDER = "/myfiles/";staticvoid Main(string[] args){string pdfDest = OUTPUT_FOLDER + "output.pdf";HtmlConverter.ConvertTo...