C# - 技术教程文章

C# 学习之旅(1)【代码】【图】

第一, 输入输出流都来自控制台。 1using System;2using System.Collections.Generic;3using System.Linq;4using System.Text;5 6namespace ConsoleApplication17{8class Program9 { 10staticvoid Main(string[] args) 11 { 12int year = int.Parse(System.Console.ReadLine()); 13int month = int.Parse(System.Console.ReadLine()); 14int day = int.Parse(System.Console.ReadLine()); 15int days = fun(year, month, ...

C# string和byte[]数组之间相互转换【代码】

原文地址:传送门string转byte[]:byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str );byte[]转string:string str = System.Text.Encoding.Default.GetString ( byteArray );string转ASCII byte[]:byte[] byteArray = System.Text.Encoding.ASCII.GetBytes ( str );ASCII byte[]转string:string str = System.Text.Encoding.ASCII.GetString ( byteArray );原文:http://www.cnblogs.com/marvelousone/p/7596770.h...

C# 泛型【代码】

C# 泛型1.定义泛型类在类定义中包含尖括号语法,即可创建泛型类:1class MyGenericClass<T> 2{ 3//Add code 4 }其中T可以遵循C#命名规则的任意字符。T可以看作是成员变量的类型、属性或者方法的返回类型以及方法的参数类型等。例如: 1class MyGenericClass<T>2 {3private T obj;4public MyGenericClass(T item)5 {6 obj=item;7 }8public T Obj9 { 10get{ return obj; } 1112 } 13 } 注意事项:...

c# 文件或者文件夹改名的最简单方法【代码】

使用cmd命令 renProcess.Start( "cmd", "/C " + "ren f:\\first c code.txt zhou.txt"); 原文:https://www.cnblogs.com/simadi/p/9435868.html

C# - is

??Checks if an object is compatible with a given type.An is expression evaluates to true if the provided expression is non-null, and the provided object can be cast to the provided type without causing an exception to be thrown.The is keyword causes a compile-time warning if the expression is known to always be true or to always be false, but typically evaluates type compatibility at run time.The ...

C#中override和new修饰符的区别

(new)“隐藏”,(override)“覆盖”(重写)。不过要弄清楚这两个有什么区别确实也很难,因为子类在使用父类方法时根本看不出区别,子类不管父类是new了还是override了,用的都是父类方法。区别就在于,一个子类对象中,用父类类型指针去访问子类成员时有区别。如果是new的,那么父类的这个函数地址仍然保留着,同时又提供了一个新的子类的该函数入口地址。也就是说子类对象中同时保存了两个入口地址,父类的该函数地址被“隐藏”,...

C#单元测试【图】

什么叫单元测试(unit testing)?是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函 数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中 要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。步骤1、创...

转载 C# 开源框架(整理)

C# 开源框架(整理)http://www.cnblogs.com/gaoyuchuanIT/articles/5612268.htmlJson.NET http://json.codeplex.com/Json.Net 是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单。通过Linq To JSON可以快速的读写Json,通过JsonSerializer可以序列化你的.Net对象。让你轻松实现.Net中所有类型(对象,基本数据类型 等)和Json的转换。 Math.NEThttp://www.mathdotnet.com/Math.NET的目标是为提供一款自身...

C# 使用FileUpload控件上传图片,将文件转换成二进制进行存储与读取【代码】【图】

状况描述:  需要上传文件,但是不想要保存到实体路径下,便可以用该功能来实现。 效果图:  点击【Upload】按钮,上传文件到数据库;  点击【Preview】,预览文件; 具体实现:  前台: 1 <tr>2 <td class="subject" nowrap="nowrap" align="right" style="width: 180px; text-align: right;"><%=Resources.WebResource.OE_ID_TYPE%>3 <!--ID Type-->4 :5 </td>6 <td style="color: #F90;"> ...

C#控制鼠标代码实例【代码】

1获得当前屏幕中鼠标的位置 int i = MousePosition.X;int j = MousePosition.Y; 这是control类中的方法。2移动鼠标首先引入dll [System.Runtime.InteropServices.DllImport("user32")] private static extern int mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo); const int MOUSEEVENTF_MOVE = 0x0001; const int MOUSEEVENTF_LEFTDOWN = 0x0002; const in...

C#AES加密【代码】【图】

今天写个接口,要求如下,需要对应的AES加密(128位),例子php的C#实现///<summary>/// AES 加密 输出hex格式///</summary>///<param name="str">明文(待加密)</param>///<param name="key">密文</param>///<returns></returns>publicstaticstring AesEncrypt(string str, string key){if (string.IsNullOrEmpty(str)) returnnull;Byte[] toEncryptArray = Encoding.UTF8.GetBytes(str);System.Security.Cryptography.RijndaelMa...

C#秘密武器之多线程——参数与返回值【代码】

概述线程函数要么没有参数,要么只能有一个object参数,而且均没有返回值,这样就大大降低了程序的灵活性,其实我们想要的是能像普通方法一样正常使用参数和返回值!能不能实现这个需求呢?下面就介绍两种方法一、添加外壳方法原理:把参数传递变成了对变量的调用方法:定义一个专门的线程类。1、需要向线程传递的参数和返回值作为类的公共属性;2、线程函数的真正方法也放在该类里边3、加壳的线程函数也放在里边(真正调用的是2的...

c# 动态加载dll文件【代码】

///<summary>/// 动态加载DLL///</summary>///<param name="lpFileName">DLL路径</param>///<param name="Namespace">命名空间</param>///<param name="ClassName">类名</param>///<param name="lpProcName">公共函数名</param>///<param name="ObjArray_Parameter"></param>///<returns></returns>privateobject Invoke(string lpFileName, string Namespace, string ClassName, string lpProcName, object[] ObjArray_Parameter)...

C#语言课程11月11日【图】

今天主要学习了out传值还有进行了将原来的一些习题用函数的方法写出来,以达到熟练使用函数。一、out传值的使用 二、函数习题的练习1、输入一个年份,判断是否为闰年(能被4整除却不能被100整除的年份。世纪年份能被400整除的闰年)2、100以内与7无关的数个位数是7十位数是77的倍数 今天小结:今天通过习题的练习已经基本掌握了函数的调用形式和使用方法,仍需要多做练习。 原文:http://www.cnblogs.com/xuankai1987/p/4960116....

c#通用登录模块,简单好用,一贴见效【代码】

// 举个例子:一个网站有用户系统、商家系统、网站后台3个系统 //可以分3个userType, user ,shop , system //网站后台一般都有角色,如admin,employee //那么网站的角色就有 user,shop,admin,employee,但是admin和employee在一个客户端是不能同时登陆的,所以他们是同一类用户(system)使用方法:1、添加一个类LoginUser.cs 代码如下:代码:namespace MVCCommonAuth {#region 功能说明// 举个例子:一个网站有用户系统、...

C#中静态与非静态方法比较

C#中静态与非静态方法比较C#静态方法与非静态方法的区别不仅仅是概念上的,那么他们有什么具体的区别呢?让我们通过本文向你做一下解析。C#的类中可以包含两种方法:C#静态方法与非静态方法。那么他们的定义有什么不同呢?他们在使用上会有什么不同呢?让我们来看看最直观的差别:使用了static 修饰符的方法为静态方法,反之则是非静态方法。下面我们分四个方面来看看C#静态方法与非静态方法的差异:C#静态方法与非静态方法比较一、...

C# 判断两条直线是否相交【代码】

直接上代码,过程不复杂/// <summary> /// 判断两条线是否相交 /// </summary> /// <param name="a">线段1起点坐标</param> /// <param name="b">线段1终点坐标</param> /// <param name="c">线段2起点坐标</param> /// <param name="d">线段2终点坐标</param> /// <param name="intersection">相交点坐标</param> /// <returns>是否相交 0:两线平行 -1:不平行且未相交 1:两线相交</returns>private int GetIntersection(Point a,...

C# 项目之总结,浓缩才是精华【图】

写项目对大家来说可能有点头疼,尤其是第一次,我们可能感觉无从下手.但是经过这几次的项目,我发现项目也是有规律的,特点的.下面是我总结的一些知识./1.大局观:我们在写项目时要先写架构,把包括的各种项目分为几部分,如在写MyBank系统时,我们会先分析参与者.分析中我们建立了类:Bank类 Card类 以及测试的Main()方法.然后在写Bank类时用到的方法也是分析中得到的./2.有条有理在写项目时我们要有条有理,也就是理科所说的逻辑思维,要把自...

工业领域C# 联合MES数据上传

MES系统本质是用来实现对生产现场、质量跟踪和追溯、质量控制、生产设备的管理功能,为生产部、品质保证部、工艺等部门提供车间管理信息服务。 /// <summary> /// 创建Get方式的HTTP请求 /// </summary> /// <param name="Url">接口地址</param> /// <returns></returns> public static string Get(string Url) { try { HttpWebRequest request =...

ASP.NET C# 跨平台开发 Windows Linux OSX【图】

在本周热点中有一条是"TIOBE编程语言排行榜,Java 重回榜首", 使用Java语言的一个最大好处是可以到处移植,特别在今天这个到处是云主机的时代,而云主机基本上跑的是Linux等类Unix系统,C#用户突然发现最近两年网络上的各种新玩具都与ASP.NET无关,ASP.NET当然也意识到这点,搞了个ASP.NET vNext (ASP.NET 5)进行跨平台设计,它的跨平台层采用的是Mono,其实Mono一直在提供ASP.NET的跨平台方案,在ASP.NET 5还不清楚什么时候稳定时...

C# new运算符

一、C# new运算符1. 用于创建对象和调用构造函数。例如:Class_Test obj = New Class_Test();2. 用于为值类型调用默认的构造函数。例如:int myInt = New int();上述语句中,myInt初始化为0,它是int类型的默认值。该语句的效果等同于:int myInt = 0;3. 不能重载new运算符。4. 如果new运算符分配内存失败,那么它将引发OutOfMemoryException异常。 原文:http://www.cnblogs.com/melao2006/p/4239498.html

C#操作Xml:XSLT语法 在.net中使用XSLT转换xml文档示例【图】

XSL即可扩展的样式表文件。 可以格式化xml的显示,也可以将xml转换成需要的另一种格式。学习XSL必须熟悉XPath。XSL和XPath一样简单强大,容易学习。1. XSL既然可以格式化xml的显示样式,我们先来看如何在xml中引用xsl文件如下代码示例:<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="url.xsl"?>只需在xml文件的文档声明后面添加<?xml-stylesheet type=”text/xsl” href=”url.xsl”?>即可2. XSL...

c# 冒号 :【代码】

1、表示继承关系 class classA:classB2、继承构造,调用自己这个类的某个构造函数,因为有的类构造函数很多参数,而有的参数又不是必须填写,或者可以提供一些默认值,就跟重载是一样的道理。在调用SocketServer(string ip, int port)时,先调用this(ip, port, BufferDefaultSize)publicclass SocketServer //: TcpListener {privateconstint BufferDefaultSize = 8192;///<summary>构造函数</summary>///<param name="ip">本机...

转:C#委托与事件

委托与事件 Ganesh Nataraj最近写了一篇解释委托与事件的文章,在坊间流传较广,今天翻译成中文与大家共享,如有不妥之处,欢迎留言讨论。 C#中的委托类似于C或C++中的函数指针。程序设计人员可以使用委托将方法的引用压缩到委托对象中,委托对象能被传递给调用该方法引用的代码而无须知道哪个方法将在编译时被调用。与C或C++中的指针不同的是,委托是面向对象的、类型安全的、受保护的。 委托声明时定义一个返回压缩方...

[.NET开发] C# 如何创建Excel多级分组

要设置显示或者隐藏分类数据下的详细信息,在便于数据查看、管理的同时也使文档更具美观性。那么,在C#中如何来创建Excel数据的多级分组显示呢?下面将进行详细阐述。方法中使用了免费版组件Free Spire.XLS for .NET,下载安装该组件,创建一个控制台应用程序后,添加引用该组件安装包下的dll文件到项目中,同时添加相应的命名空间即可。下面是具体的代码操作步骤,供参考。步骤一:创建一个Wordbook类对象,获取第一个工作表Workboo...

C# 的 Dictionary 使用上應注意事項【图】

一個已上線、用戶龐大的系統,幾個月來第一次出現這個系統錯誤訊息 :「已經加入含有相同索引鍵的項目」An item with the same key has already been added.分析原因:C# 的 Dictionary 這種資料結構的變數,若宣告為 static,在使用上,要注意寫入或 Add 資料前,只作 if ContainsKey 判斷是不夠的 (如下圖 2),因其不是「執行緒 ; 线程 (thread)」安全的 (若有多人同時寫入,有可能造成異常,甚至出錯。機率不高,但久久偶爾會發生...

C#索引器【代码】

索引器例子using System; using System.Collections;publicclass IndexerClass {privatestring[] name = newstring[2];//索引器必须以this关键字定义,其实这个this就是类实例化之后的对象publicstringthis[int index]{//实现索引器的get方法get{if (index < 2){return name[index];}returnnull;}//实现索引器的set方法set{if (index < 2){name[index] = value;}}} } publicclass Test {staticvoid Main(){//索引器的使用IndexerCl...

c# 用正则表达式在指定的字符串中每隔指定个数的文字插入指定字符串【代码】

publicstaticstring AddNewLine(string inString,int num,string addString="\r\n"){return Regex.Replace(inString, string.Format(@".{{{0}}}", num), "$0"+addString);} 原文:http://www.cnblogs.com/simadi/p/3897779.html

44. C# -- 索引器和属性【代码】

1、属性 所谓属性其实就是特殊的类成员,它实现了对私有类域的受控访问。在C#语言中有两种属性方法,其一是get,通过它可以返回私有域的值,其二是set,通过它就可以设置私有域的值。比如说,以下面的代码为例,创建学生姓名属性,控制对name字段的受控访问:using System;public class Student { private string name; /// <summary> /// 定义学生的姓名属性 /// </summary> public string Name { ...

【c#基础】泛型【代码】

1:减少代码的选项可以是用Object类,也可以使用泛型但是Object类进行类型传递不是类型安全的。泛型类使用泛型类型保证了类型安全。泛型类 泛型方法 泛型接口泛型优点:1:性能装箱和拆箱很容易使用,但性能损失比较大。泛型的话在编译的时候就会动态生成我们定义他的类型,这样就不用进行装箱和拆箱。var list=new List<int>();上面这一句的话编译的时候就会编译成对应的int类型了,所以在运行的时候不用在进行装拆箱操作了。2:类...