C#
好大一只鸡
从事挨踢十几年,练就@#$%^^&
展开
-
GDI+简单绘图
GDI+:Graphics Device Interface Plus也就是图形设备接口,提供了各种丰富的图形图像处理功能;在C#.NET中,使用GDI+处理二维(2D)的图形和图像,使用DirectX处理三维(3D)的图形图像,图形图像处理用到的主要命名空间是System . Drawing:提供了对GDI+基本图形功能的访问,主要有Graphics类、Bitmap类、从Brush类继承的类、F转载 2013-05-20 17:02:56 · 1379 阅读 · 0 评论 -
c#实现动态加载Dll
基本思路:1、利用反射进行动态加载和调用. Assembly assembly=Assembly.LoadFrom(DllPath); //利用dll的路径加载,同时将此程序集所依赖的程序集加载进来,需后辍名.dllAssembly.LoadFile 只加载指定文件,并不会自动加载依赖程序集.Assmbly.Load无需后辍名 2、加载dll后,需要使用dll中某类转载 2016-03-23 15:39:43 · 547 阅读 · 0 评论 -
30分钟linq教程
在说LINQ之前必须先说说几个重要的C#语言特性一:与LINQ有关的语言特性 1.隐式类型 (1)源起 在隐式类型出现之前, 我们在声明一个变量的时候, 总是要为一个变量指定他的类型 甚至在foreach一个集合的时候, 也要为遍历的集合的元素,指定变量的类型转载 2016-04-13 09:17:48 · 287 阅读 · 0 评论 -
Newtonsoft.Json高级用法
基本用法 Json.Net是支持序列化和反序列化DataTable,DataSet,Entity Framework和Entity的。下面分别举例说明序列化和反序列化。DataTable: //序列化DataTable DataTable dt = new DataTable(); dt.Colum转载 2016-04-19 14:56:37 · 9323 阅读 · 1 评论 -
C# 调用 C++ DLL(2) 非托管方式:直接调用C++方法(类型转换)
extern"C"__declspec(dllexport)bool方法名一(constchar*变量名1,unsignedchar*变量名2)extern"C"__declspec(dllexport)bool方法名二(constunsignedchar*变量名1,char*变量名2)C#调用C++的DLL搜集整理的所有数据类型转换方式,可能会有重复或者多种方案,自己多测试c++: HAN...转载 2017-10-10 13:23:25 · 2436 阅读 · 0 评论 -
C# 关于JArray和JObject封装JSON对象
1、JObject:基本的json对象 /// /// Gets the j object. /// /// public JObject GetJObject() { var obj = new JObject {{"Name", "Mark" } }; return obj; }2、转载 2018-01-26 11:06:01 · 19685 阅读 · 2 评论 -
在C#调用C++的DLL (1)非托管的方式进行调用;(2)采用托管的方式进行调用。
C#调用C++的方式分为两种:一、使用非托管类调用C++的dll。1、首先在vs2010新建项目选择win32应用程序,并设置为DLL,如下图所示 2、添加MyDLL.cpp源文件,其中代码:#include <cv.h>#include <highgui.h>extern "C" _ _declspec(dllexport)void Show(...转载 2018-07-24 15:46:47 · 432 阅读 · 0 评论 -
C# 调用 C++ DLL(1) 非托管方式:直接调用C++方法
一.直接调用c++的里面的方法[DllImport("user32.dll", EntryPoint = "GetWindowLong", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl)]public static extern int GetWindowLong(HandleRef hWnd, int...转载 2018-07-25 10:44:57 · 2226 阅读 · 0 评论 -
C# 调用 C++ DLL(4) 托管方式:需要使用c++类
1.一个简单的C++托管范例1、首先建立一个C++ 的dll 项目(Dll_Cpp)并生成,会得到这三个文件:Dll_Cpp.dll //动态库Dll_Cpp.lib //静态库Dll_Cpp.h //头文件其中Dll_Cpp.h的代码如下:// 下列 ifdef 块是创建使从 DLL 导出更简单的// 宏的标准方法。此 DLL 中的所有文件都是用命令行上定...转载 2018-07-25 10:59:18 · 4443 阅读 · 1 评论 -
C# 调用 C++ DLL(3) 非托管方式:直接调用C++方法(使用范例)
1、首先在vs2010新建项目选择win32应用程序,并设置为DLL,如下图所示 2、添加MyDLL.cpp源文件,其中代码:#include <cv.h>#include <highgui.h>extern "C" _ _declspec(dllexport)void Show() { IplImage *img = cvLoadImage(...转载 2018-07-25 11:04:16 · 852 阅读 · 0 评论 -
.Net 中的反射
我在后面将较详细地介绍 Type类,现在只希望你能对反射有个第一印象,所以只简略地作以说明:Type抽象类提供了访问类型元数据的能力,当你实例化了一个Type对象后,你可以通过它的属性和方法,获取类型的元数据信息,或者进一步获得该类型的成员的元数据。注意到这里,因为Type对象总是基于某一类型的,并且它是一个抽象类,所以我们在创建Type类型时,必须要提供 类型,或者类型的实例,或者类型的字符串值转载 2014-06-03 15:48:58 · 574 阅读 · 0 评论 -
ADO.net的操作
一、简单介绍ADO.NETSystem.Data:DataTable,DataSet,DataRow,DataColumn,DataRelation,ConstraintSystem.Data.Common(各种数据访问类的基类和接口):DataColumnMapping,DataTableMappingSystem.Data.SqlClient(对Sql Server进行操作的数据访转载 2014-05-31 11:42:54 · 668 阅读 · 0 评论 -
c# 利用反射来创建实例
1 using System;2 using System.Collections.Generic;3 using System.Linq;4 using System.Text;5 using System.Reflection;67 namespace ThreadDemo8 {9 /**//// 10 /// 反射实例11 ///转载 2013-04-26 17:03:50 · 679 阅读 · 0 评论 -
C#获取程序当前路径
C#获取文件路径的几种方法//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。string str5=Application.StartupPath;//可获得当前执行的exe的文件名。string str1 =Process.GetCurrentProcess().MainModule.FileName;// 获取和设置当前目录(即该进程从中启动的目录)的完全限转载 2013-05-30 14:28:39 · 551 阅读 · 0 评论 -
C#委托和事件
C#委托及事件在C#中,委托(delegate)是一种引用类型,在其他语言中,与委托最接近的是函数指针,但委托不仅存储对方法入口点的引用,还存储对用于调用方法的对象实例的引用。首先,看下面的示例程序,在C++中使用函数指针。int Max(int x,int y) //求两个数的最大值{return x>y?x:y;}int Min(int x,int y) /转载 2013-05-31 10:20:50 · 663 阅读 · 0 评论 -
C#发送Email邮件的方法解析
C#发送Email邮件方法之一:通过LocalHost public void SendMailLocalhost() ...{ System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage(); msg.To.Add("a@a.com"); msg.To.Add("b@b.com");转载 2013-05-31 13:19:57 · 818 阅读 · 0 评论 -
接口的作用
public interface IStone //定义一个接口,名字以大写I开头(通用写法) { void Send(Email mail); //定义一个方法,用来发送邮件(接口无法定义属性)}public class stoneEmailSender : IStone (这个类继承了上面定义的接口,在类里实现接口的具体方法,不实现的话编译时会报错){原创 2013-05-31 16:17:33 · 648 阅读 · 0 评论 -
C#中Split用法-字符串分割
1、用字符串分隔: using System.Text.RegularExpressions;string str="aaajsbbbjsccc";string[] sArray=Regex.Split(str,"js",RegexOptions.IgnoreCase);foreach (string i in sArray) Response.Write(i.ToString()原创 2013-04-29 09:30:22 · 1888 阅读 · 0 评论 -
实现自己的ORM(反射以及Attribute在ORM中的应用)
一、 反射什么是反射?简单点吧,反射就是在运行时动态获取对象信息的方法,比如运行时知道对象有哪些属性,方法,委托等等等等。反射有什么用呢?反射不但让你在运行是获取对象的信息,还提供运行时动态调用对象方法以及动态设置、获取属性等的能力。反射在ORM中有什么用呢?我这里所讨论的ORM实现是通过自定义Attribute的方式进行映射规则的描述的。但是我们并不知道具体哪个对象需要对转载 2013-04-29 09:32:25 · 666 阅读 · 0 评论 -
C# 插件式程序开发
什么是插件式编程 提起插件式,我们首先想到的是firefox, 用过firefox的人都知道它是一个插件式程序。当一个功能需要,完全可以从网上下载一个插件后,重启后,就能使用。这个功能给我们带来许多的方便之处,这就是插件式程序的好处。 插件的本质在于不修改程序主体(平台)的情况下对软件功能进行拓展与加强,当插件的接口公开后,任何公司或个人都可以制作自己的插件来解决一些操作上的不便或增加转载 2013-06-15 16:14:51 · 929 阅读 · 2 评论 -
javascript 与 c# 的网址编码
javascript的编码方式:escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z (已经不推介使用)encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-ZencodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,原创 2013-07-23 11:08:25 · 665 阅读 · 0 评论 -
.Net中的委托以及事件处理
有许多人问的,.Net中的委托以及事件处理。我拿简单的例子说明一下,是现实中的例子:比如说一个公司(场景),你是老板,手下有两个员工,小张和小王。你命令小王,如果小张玩游戏,则小王扣去小张500元钱。这就是现实中的委托。实际上,在写程序中,程序员就是老板,小张和小王就是两个对象。小张玩游戏是一个方法,小张还有一个游戏事件,他玩游戏激发这个事件。而小王就是事件处理对象,他负责把小转载 2014-03-18 08:23:46 · 545 阅读 · 0 评论 -
C# 调用 C++ DLL(5) 托管方式:需要使用c++类(数据转换说明)
在使用托管c++前,先说明一下 托管c++ 与 本地c++ 的类型转换方法:C++ 中的封送处理概述在混合模式下,有时必须封送本机和托管类型之间的数据。 Visual Studio 2008 中引入封送处理库以帮助将封送,并将数据转换的简单方式。 封送处理库包含一组函数和一个marshal_context执行常见类型的封送处理的类。 在这些标头中定义库包括 msclr目录为您的 Visua...转载 2018-07-25 11:20:35 · 4369 阅读 · 0 评论