随笔分类 -  0.0 C#

网页居中
摘要:<body align="center"> <div width="980" align="left"> text </div></body> 阅读全文

posted @ 2012-05-09 23:13 大佛张 阅读(99) 评论(0) 推荐(0)

Marshal类支持从托管内存空间复制数据到非托管内存空间
摘要:Marshal类支持从托管内存空间复制数据到非托管内存空间,或是从非托管内存空间到托管内存空间。如果你研究在线的MSDN文档库,你会看到在桌面.NET框架下这个类支持的分配非托管内存空间的方法和其他的一些与COM对象共同工作的方法。没有任何内存空间管理和COM支持方法在.NET精简框架的Marshal实现中出现。表4.5总结了Marshal类的被.NET精简框架支持的成员:13方法名(有一个或多个重载版本)和1个只读域。表4.5 Marshal类中.NET精简框架支持的成员Marshal 成员描述在托管和非托管间复制Copy在托管和非托管内存空间之间复制值类型数组。支持CLI整型,包括64位整 阅读全文

posted @ 2012-02-15 09:01 大佛张 阅读(4087) 评论(0) 推荐(0)

c#工程中全局变量的定义方法
摘要:1.建立一单独的公共类,在类中定义全局常量或变量,如下using System;namespace Globalspace{/// <summary>/// Global 的摘要说明。/// </summary>///public class global{#region "常量定义区"//数据库连接字符串public const string conString = "User ID=sa;Password=mypass;Initial Catalog=master;Data Source=127.0.0.1;Min Pool Size= 阅读全文

posted @ 2012-02-02 14:06 大佛张 阅读(21661) 评论(0) 推荐(0)

string类的一些应用
摘要:判断是否包含子串想要判断一个字符串中是否包含某个子串,可以用Contains方法来实现:Ø public bool Contains (string value)参数value为待判定的子串。如果包含,返回true;否则返回false。下面的代码判断“Hello”中是否包含两个子串。1. bool b1 = strA.Contains("ll"); //true2. bool b1 = strA.Contains("MM"); //false4.1.4 定位字符和子串定位子串是指在一个字符串中寻找其中包含的子串或者某个字符。在String类中, 阅读全文

posted @ 2012-01-31 11:20 大佛张 阅读(579) 评论(0) 推荐(0)

深入C#学习系列一:序列化(Serialize)、反序列化(Deserialize)
摘要:深入C#学习系列一:序列化(Serialize)、反序列化(Deserialize)序列化又称串行化,是.NET运行时环境用来支持用户定义类型的流化的机制。其目的是以某种存储形成使自定义对象持久化,或者将这种对象从一个地方传输到另一个地方。.NET框架提供了两种串行化的方式:1、是使用BinaryFormatter进行串行化;2、使用SoapFormatter进行串行化;3、使用XmlSerializer进行串行化。第一种方式提供了一个简单的二进制数据流以及某些附加的类型信息,而第二种将数据流格式化为XML存储;第三种其实和第二种差不多也是XML的格式存储,只不过比第二种的XML格式要简化很多 阅读全文

posted @ 2012-01-19 15:58 大佛张 阅读(323) 评论(0) 推荐(0)

C#的数据类型转换
摘要:装箱/拆箱/别名、数值类型间相互转换、ASCII码和Unicode码、数值字符串和数值之间的转换、字符串和字符数组/字节数组之间的转换、各种数值类型和字节数组之间的转换、十六进制数输出以及日期型数据的一些转换处理。1. 装箱、拆箱、别名int->Int32是一个装箱的过程,反之则是拆箱的过程,其他例如:short<->Int16,long<->Int64等。装箱和拆箱的动作由编译器自动完成,不需要人工干预。为了记住这些类型之间的关系,我们使用了“别名”。C#是全面向对象的语言,它把简单数据类型通过默认的装箱动作封装成了类。Int32、Int16、Int64等就是相 阅读全文

posted @ 2012-01-19 13:42 大佛张 阅读(878) 评论(0) 推荐(0)

C#中MessageBox用法大全(附效果图)
摘要:我们在程序中经常会用到MessageBox。MessageBox.Show()共有21中重载方法。现将其常见用法总结如下:1.MessageBox.Show("Hello~~~~");最简单的,只显示提示信息。2.MessageBox.Show("There are something wrong!","ERROR");可以给消息框加上标题。3.if (MessageBox.Show("Delete this user?", "Confirm Message", MessageBoxButton 阅读全文

posted @ 2012-01-18 11:26 大佛张 阅读(2549) 评论(1) 推荐(1)

C# string 转换 endpoint 类型
摘要:string iStr ="192.168.0.1:1234";System.Net.IPAddress IPadr=System.Net.IPAddress.Parse(iStr.Split(':')[0]);//先把string类型转换成IPAddress类型System.Net.IPEndPoint EndPoint=new System.Net.IPEndPoint(IPadr,int.Parse(iStr.Split(':')[1]));//传递IPAddress和PortEndPoint是一个抽象类,IPEndPoint继承自En 阅读全文

posted @ 2012-01-18 10:44 大佛张 阅读(5008) 评论(0) 推荐(0)

c#如何处理自定义消息
摘要:C#自定义消息通信往往采用事件驱动的方式实现,但有时候我们不得不采用操作系统的消息通信机制,例如在和底层语言开发的DLL交互时,是比较方便的。下面列举了一些实现方式,供大家参考:一、通过SendMessage或postmessage函数发送:1、 定义消息在C++中引用底层的函数很简单,自定义消息如下#define WM_TEST WM_USER + 101而在c#中消息需要定义成windows系统中的原始的16进制数字,比如自定义消息public const int USER = 0x0400;public const int WM_TEST =USER+101;2、 发送消息消息发送是通过 阅读全文

posted @ 2012-01-17 13:42 大佛张 阅读(4011) 评论(0) 推荐(1)

C#中几种获取路径方法
摘要:string str1 =Process.GetCurrentProcess().MainModule.FileName;//可获得当前执行的exe的文件名。 string str2=Environment.CurrentDirectory;//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。 //备注按照定义,如果该进程在本地或网络驱动器的根目录中启动,则此属性的值为驱动器名称后跟一个尾部反斜杠(如“C:\”)。如果该进程在子目录中启动,则此属性的值为不带尾部反斜杠的驱动器和子目录路径(如“C:\mySubDirectory”)。 string str3=Directory.Ge 阅读全文

posted @ 2012-01-05 16:25 大佛张 阅读(543) 评论(0) 推荐(1)

c# 代码自动对齐
摘要:编辑器加载中...方法1:选中代码--ctrl+k--ctrl+f方法2:工具-选项-文本编辑器-C#-格式 阅读全文

posted @ 2012-01-05 16:20 大佛张 阅读(6167) 评论(0) 推荐(0)

C#:XML操作类
摘要:写的一个XML操作类,包括读取/插入/修改/删除。using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Xml;namespace PuTianCheng{/// <s 阅读全文

posted @ 2012-01-05 16:10 大佛张 阅读(243) 评论(0) 推荐(0)

C# 子线程调用主线程窗体的解决方法
摘要:摘自其他人博客,自己试过确实解决问题。(如在自己定义的线程里面给textbox赋值)由于Windows窗体控件本质上不是线程安全的。因此如果有两个或多个线程适度操作某一控件的状态(set value),则可能会迫使该控件进入一种不一致的状态。还可能出现其他与线程相关的bug,包括争用和死锁的情况。所以VS2005这一改动便可以增强线程安全性。我想大家更关心的是如何解决这个问题,如何才能操作其它线程中的控件而不引发异常,接下来我们就来探讨下这个问题:第一种方法:这种方法我没用过,因为大家推荐不要使用,所以我没去实验过,具体方法如下(摘自网上):设置System.Windows.Forms.Con 阅读全文

posted @ 2011-12-31 15:28 大佛张 阅读(2272) 评论(0) 推荐(0)

多线程通信实例(子线程向主线程:用委托事件实现)
摘要:1using System;2using System.Threading;34namespace ifan5{6 //自定义委托声明7publicdelegatevoid childExitDelegate(object sender, ChildExitEventArgs e);89 publicclass TDelegate10 {11 //自定义的事件,实际上就是上面那个委托类型的实例12publicstaticevent childExitDelegate onChildThreadExit;1314 privatestaticvoid Main()15 {16 //订阅事件,就是说 阅读全文

posted @ 2011-12-31 09:39 大佛张 阅读(962) 评论(0) 推荐(0)

C#委托及事件 详解(讲得比较透彻)
摘要:在C#中,委托(delegate)是一种引用类型,在其他语言中,与委托最接近的是函数指针,但委托不仅存储对方法入口点的引用,还存储对用于调用方法的对象实例的引用。简单的讲委托(delegate)是一种类型安全的函数指针,首先,看下面的示例程序,在C++中使用函数指针。首先,存在两个方法:分别用于求两个数的最大值和最小值。int Max(int x,int y){return x>y?x:y;}int Min(int x,int y){return x}上面两个函数的特点是:函数的返回值类型及参数列表都一样。那么,我们可以使用函数指针来指代这两个函数,并且可以将具体的指代过程交给用户,这样 阅读全文

posted @ 2011-12-30 10:36 大佛张 阅读(2167) 评论(0) 推荐(2)

ORM之硬伤
摘要:http://www.cnblogs.com/Barton131420/archive/2007/01/07/613955.html园子里有些人,他们真以为自己明白了面向对象,然后装着满腹经纶,侃侃而谈,一篇接一篇,不厌其烦地喊着ORM如何如何。你以为他真的明白“面向对象”么?其实,他对面向对象的理解仅限于教科书中的封装、继承和多态,或者再知道一点面向对象的若干原则但其实并不真正理解。笔者愚钝,入行多年尚不懂面向对象,只懂得用其形而不懂用其实。五年后的某一天终于开窍,明白了面向对象之实,也仅仅是一个开始而已。当又经历了另一个五年的倦怠,发现并理解了设计模式、面向方面等技术作为面向对象的必要补充 阅读全文

posted @ 2011-12-23 10:41 大佛张 阅读(260) 评论(0) 推荐(0)

partial class 说明
摘要:C# 2.0 可以将类、结构或接口的定义拆分到两个或多个源文件中,在类声明前添加partial关键字即可。例如:下面的PartialTest类class PartialTest{string Str_FieldTest;int Int_FieldTest;public void DoTest(){Debug.Print("Test");}}可在不同源文件中写成下面形式:一个文件中写:partial class PartialTest{string Str_FieldTest;int Int_FieldTest;}另一个文件中写:partial class PartialTe 阅读全文

posted @ 2011-12-23 10:31 大佛张 阅读(2970) 评论(1) 推荐(2)

.NET多线程编程
摘要:在.NET多线程编程这个系列我们讲一起来探讨多线程编程的各个方面。首先我将在本篇文章的开始向大家介绍多线程的有关概念以及多线程编程的基础知识;在接下来的文章中,我将逐一讲述。NET平台上多线程编程的知识,诸如System.Threading命名空间的重要类以及方法,并就一些例子程序来作说明。 引言 早期的计算硬件十分复杂,但是操作系统执行的功能确十分的简单。那个时候的操作系统在任一时间点只能执行一个任务,也就是同一时间只能执行一个程序。多个任务的执行必须得轮流执行,在系统里面进行排队等候。由于计算机的发展,要求系统功能越来越强大,这个时候出现了分时操作的概念:每个运行的程序占有一定的处理... 阅读全文

posted @ 2011-12-20 15:26 大佛张 阅读(312) 评论(0) 推荐(0)

C#如何禁用Form窗口的最大化按钮
摘要:实际项目开发过程中,我们可能需要将Form窗口的最大化按钮禁用掉。1。设定系统菜单首先在窗体类中声明:public class Form1 : System.Windows.Forms.Form{[DllImport("user32.dll",EntryPoint="GetSystemMenu")] //导入API函数extern static System.IntPtr GetSystemMenu(System.IntPtr hWnd , System.IntPtr bRevert);[DllImport("user32.dll", 阅读全文

posted @ 2011-12-05 16:28 大佛张 阅读(1417) 评论(0) 推荐(0)