
c#
文章平均质量分 64
susan19890313
这个作者很懒,什么都没留下…
展开
-
托管代码和非托管代码
托管代码是一microsoft的中间语言,他主要的作用是在.NET FRAMEWORK的CLR执行代码前去编译源代码,也就是说托管代码充当着翻译的作用。源代码在运行时分为两个阶段: 1.源代码编译为托管代码;(所以源代码可以有很多种,如VB,C#,J#)2.托管代码编译为microsoft系统的.net平台专用文件(如类库、可执行文件等)。由公共语言运行库环境(而不是转载 2012-05-17 10:36:13 · 2531 阅读 · 0 评论 -
c# 动态获取系统当前日期和时间
1、新建一个windows form 窗体应用程序。2、在该窗体加载时,输入如下代码Thread P_thread = new Thread( () => //lambda表达式(参数列表)=>{执行语句} lambda表达式是比匿名方法更加简洁的一种匿名函数语法 { while原创 2011-11-11 19:41:16 · 16045 阅读 · 4 评论 -
句柄
在Windows中,句柄是一个系统内部数据结构的引用。例如当你操作一个窗口,或说是一个Delphi窗体时,系统会给你一个该窗口的句柄,系统会通知你:你正在操作142号窗口,就此你的应用程序就能要求系统对142号窗口进行操作——移动窗口、改变窗口大小、把窗极小化为图标等。实际上许多Windows API函数把句柄作为它的第一个参数,如GDI(图形设备接口)句柄、菜单句柄、实例句柄、位图句柄等,不仅仅原创 2011-11-11 17:11:19 · 835 阅读 · 0 评论 -
C# 跨线程操作控件的线程安全性方法
一、 引言 在C#中,经常用到这样一个场景,Windows Form程序启动一个工作者线程执行一部分工作,这样做是为了避免速度慢的工作如果直接调用会使得主Form停止响应一段时间。既然启动了线程,就避免不了线程之间数据传递的事情,相信你有很多种办法能解决,总之注意同步和互斥操作就好。我想说的是,工作线程处理中可能想操作某个主线程的Windows Form的原创 2011-11-11 17:02:37 · 3807 阅读 · 1 评论 -
委托的应用之二:使用多播委托编码Observer模式。以及事件的引入
下面将通过一个例子来讲解如何使用多播委托编码Observer模式。 问题描述:一个加热器和一个冷却器连接到同一个自动调温器。为了控制加热器和冷却器的打开和关闭,要向它们通知温度的变化。自动调温器将温度的变化发布给多个订阅者:加热器和冷却器。 (1)定义订阅者:加热器和冷却器 的方法 (2)定义发布者类:自动调温器(3)在主程序中连接发布者和订阅者,改变自动调温原创 2011-09-22 15:43:15 · 654 阅读 · 0 评论 -
关键字this的作用
this 关键字引用类的当前实例,还可用作扩展方法的第一个参数的修饰符。 以下是 this 的常用用途:1、限定被相似的名称隐藏的成员,例如: public Employee(string name, string alias){ // Use this to qualify the fields, name and alias:转载 2011-11-09 09:51:30 · 1761 阅读 · 0 评论 -
委托基础知识简单介绍
一、什么是委托?1、委托是一种数据类型,就像类是一种数据类型一样。。是一种可用于封装命名或匿名方法的引用类型。是定义方法签名的类型注意:在方法重载的上下文中,方法的签名仅指形参(参数的类型和个数)。 但在委托的上下文中,方法签名不仅包括形参还包括返回值。2、委托对象是一个有序方法的列表。它所封装的方法具有相同的返回值类型和参数列表,这些方法可以是实例方法也可以是静态方法,可以来原创 2011-11-08 21:01:28 · 1178 阅读 · 0 评论 -
C# 关于委托和事件的妙文:通过一个例子详细介绍委托和事件的作用;Observer模式简介
委托和事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对Observ转载 2011-11-08 20:45:17 · 18737 阅读 · 8 评论 -
C# 如何查看源程序的IL代码
1、打开microsoft visual studio 2008 / visual studio tools / visual studio 2008 命令提示 ,并输入ildasm 。如下图所示:2、按enter键,打开IL DASM 窗口,如下图所示:3、单击 文件 / 打开,打开编译好的.exe文件,即可查看该代码的IL代码例如:通过visual原创 2011-11-08 20:02:28 · 16001 阅读 · 0 评论 -
序列化的作用
一、序列化的引入、作用 把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。 序列化又称串行化,其目的是以某种存储形式使自定义对象持久化,或者将这种对象从一个地方传输到另一个地方。 所谓的序列化就是是将对象转换为容易传输的格式的过程,一般情况下转化为流文件,放入内存或者IO文件中。例如,可原创 2011-11-26 16:39:13 · 11118 阅读 · 1 评论 -
c# 中 结构和类的区别
转自: http://www.cnblogs.com/fhbcn/archive/2009/01/08/1371790.html一、 .类与结构的差别 1. 值类型与引用类型 结构是值类型:值类型在堆栈上分配地址,所有的基类型都是结构类型,例如:int 对应System.int32 结构,通过使用结构可以创建更多的值类型类是引用类型:引用类型在堆上分配地址转载 2011-11-03 16:11:59 · 792 阅读 · 0 评论 -
C# 字符串拘留池机制(string intern pool),禁止使用?????
一、字符串拘留池的引入 在一个程序中,如果将同一个字符串赋值给不同的字符串引用,那么系统会为多次分配内存空间,然而这些内存中存储的是同一个字符串(见下图)。这不仅浪费了宝贵的内存,还极大程度的降低了系统的性能。为了改善程序的性能,.net提出了字符串拘留池机制来解决这一问题。 string a="abcde"; string b="abcde"; 二、字符串拘留池的原创 2012-03-18 10:46:12 · 5116 阅读 · 2 评论 -
c# string的只读特性
using System;using System.Collections.Generic;using System.Text;namespace NET.MST.Fourth.StringAttribute{ class StringAttribute { static void Main(string[] args) {原创 2012-03-19 10:54:13 · 3005 阅读 · 2 评论 -
在c#中使用指针
如果想在c#中使用指针,首先对项目进行配置:在解决方案资源管理器中右击项目名选择属性(或在项目菜单中选择consoleApplication属性(consoleApplication为项名)),在生成选项卡中 选中“允许不安全代码”,如下图: 然后将有关指针,地址的操作放在unsafe语句块中。使用unsafe关键字是来告诉编译器下面的代码是不安全的。unsafe关键字的使用原创 2012-03-19 10:33:09 · 24568 阅读 · 1 评论 -
将ComboBox 控件绑定到数据
怎样让ComboBox显示表中的一个字段,同时又绑定另一个字段。而绑定多个字段时典型的如列表控件Combobox、ListBox控件,需要键值对,这时就需要指定DataSource(实现IList接口就行),然后指定ValueMember、DisplayMember SqlConnection con = new SqlConnection("server=.;uid=sa;pwd=911转载 2012-05-17 10:23:30 · 2218 阅读 · 0 评论 -
为什么控件的有些属性在代码中可用,但是在设计界面的属性窗口中就没有
控件的有些属性,只能在代码中设置,但是在可视化设计时,不能在属性列表中设置,因为属性上有很多Attribute(特性),它们告诉设计器在哪里要显示或隐藏属性。比如datagridview的AutoGenerateColumns属性就是这样,[BrowsableAttribute(false)]public bool AutoGenerateColumns { get; set; }转载 2012-05-17 10:19:32 · 1895 阅读 · 0 评论 -
强数据类型和弱数据类型
强类型定义语言 一种总是强制类型定义的语言。Java和Python是强制类型定义的。如果你有一个整数,如果不显示地进行转换,你不能将其视为一个字符串 弱类型定义语言 一种类型可以被忽略的语言,与强类型定义相反。VBScript是弱类型定义的。在VBScript中,可以将字符串 '12 ' 和整数 3 进行连接得到字符串 '123 ',转载 2012-05-17 10:16:08 · 7870 阅读 · 0 评论 -
c#中字段(field)和属性(property)的区别
class myclass{ private int _age;//私有的字段 public int age //属性 { get { return this. _age;} set {this.age=value; } }}对一个私有的字段提供这样的属性有什么意义呢?为什么不直接把age改成公有的? 分析:1、属性可以只读转载 2012-05-17 10:12:56 · 14039 阅读 · 1 评论 -
c#中4个访问修饰符和8个声明修饰符详解
4个访问修饰符(是添加到类、结构或成员声明的关键字) Public:公有的,是类型和类型成员的访问修饰符。对其访问没有限制。Internal:内部的,是类型和类型成员的访问修饰符。同一个程序集中的所有类都可以访问Private:私有的,是一个成员访问修饰符。只有在声明它们的类和结构中才可以访问。Protected::受保护的,是一个成员访问修饰符。只能在它的类和它的派生类中访问转载 2012-05-17 10:11:49 · 21458 阅读 · 3 评论 -
sqlserver 连接字符串
以本地服务器(LocalHost),数据库(Northwind)为例,可以有以下一些连接方式String str="Server=LocalHost;Integrated Security=SSPI;Database=Northwind";Stringstr=”DataSource=LocalHost;IntegratedSecurity=SSPI;InitialCatalog=N转载 2012-05-17 10:25:33 · 6131 阅读 · 0 评论 -
窗体类Form中方法Show()和ShowDialog()的区别
show()是非模式窗体.showDialog()是模式窗体.区别在于,以showDialog()打开的窗体,要等窗体关闭后才能操作其他窗体.而show()则不受此限制.转载 2012-05-17 10:17:03 · 2087 阅读 · 0 评论 -
元数据
元数据就是你引用别人的项目或是系统自带的DLL文件之后,里面的相关数据,方法。比如你用三层架构的时候,BLL层引用了DAL层的DLL文件,可以调用DLL层的相关方法等等,但你在BLL层对调用的DAL层的方法进行“转到定义”的时候就会是元数据,你只能看到他的方法名参数具体的实现代码你是看不到的只有在DAL层才能看到被调用的方法的实现代码。 所谓“从元数据”实是指由微软所封装的转载 2012-05-17 10:35:40 · 1256 阅读 · 0 评论 -
C#中控件的Click事件与MouseClick事件有什么区别?
click,可以不用鼠标点.(当焦点在些控件上,你点回车之类的就可以激发这个事件)mouseclick就得用鼠标点.转载 2012-05-17 10:10:02 · 14977 阅读 · 0 评论 -
C# partial 关键字详解
我们新建一个Windows Form时,后台代码都会自动添加如下代码:1public partial class Form1 : Form2 {3 public Form1()4 {5 InitializeComponent();6 }7 }为什么类Form1要用partial修饰?partial主要用在哪些转载 2012-05-17 10:07:53 · 54816 阅读 · 1 评论 -
在TabControl控件中将指定的选项卡设置为当前选项卡
法1:利用TabControl的SelectTab方法1、将指定索引的选项卡成为当前选项卡public void SelectTab(int index)index 要选择的选项卡在 TabPages 集合中的索引。2、将将指定名称的选项卡成为当前选项卡。public void SelectTab(string tabPageName)3、将指定的 TabPage原创 2011-11-18 16:40:56 · 19617 阅读 · 1 评论 -
在visual studio 2008下编译C程序
在学习C语言的时候接触的一般都是VC6.0。但是VC6.0只能编译C或者C++,不支持C#,集成度不是很高。而且界面并不十分友好,不能自动猜测关键字,函数的参数也不能自动标示。最关键的是,编译的时候纠错信息是全英文的,对于初学者十分不方便。在演示编译一些简单的C程序时VC6.0可以胜任,但是在进行稍微复杂的程序编辑工作时,VC6.0就有点力不从心了。 现在微软的基于.NET的开转载 2011-10-26 21:11:22 · 1329 阅读 · 0 评论 -
C# 值类型和引用类型
1、值类型只需要一段单独的内存,用于存放实际的数据。2、引用类型需要两段内存:第一段存储实际的数据,总是位于堆中;第二段是一个引用,指向数据在堆中的存放位置。3、值类型和引用类型的数据在内存中的存储位置 (1)数据不是其他类型的成员 对于值类原创 2011-10-01 22:59:45 · 891 阅读 · 0 评论 -
c# 数据类型 小结(未完)
一、15种预定义类型 1、非数值类型(1)布尔类型@1、一个布尔类型的字面值使用关键字true和false。@2、在c#中数值类型不具有布尔意义,即0不代表false,非0也不代表true。@3、虽然从理论上说,一个bit就能容纳一个布尔类型的值,但布原创 2011-10-01 22:38:26 · 826 阅读 · 0 评论 -
C#中Main函数的4中签名
一、 Main函数的4种签名:● static void Main()● static void Main(string[] args)● static int Main()● static int Main(string[] args)二、相关说明原创 2011-09-29 21:45:20 · 2003 阅读 · 0 评论 -
C# 数据库中图像信息的读取与写入
一、将图像的二进制形式保存到数据库中 二、从数据库中读取图像的二进制信息,并将图像保存到指定的物理位置三、从数据库中读取图像的二进制信息,并将图像显示在windows窗体中方法一:将读取的图像直接显示在windows窗体中 方法二:将读取的图转载 2011-10-11 21:12:02 · 1721 阅读 · 0 评论 -
c# using 关键字小结
一、using作为指令,有如下两个作用 1、导入其他命名空间或命名空间中定义的类型,这样就可以不必对类型使用完全限定名了。 注意:(1) using引入命名空间,并不等于编译器编译时加载该命名空间所在的程序集,程序集的加载决定于程序中对该程序集是否存在调用原创 2011-09-29 18:23:27 · 13326 阅读 · 1 评论 -
命名空间 小结
一、命名空间的作用1、命名空间将 与一个特定功能有关的 所有类型都分组到一起。2、命名空间有助于防止类型名称发生冲突。例如,两个都叫Program的类型只要在不同的命名空间中,就可以由编译器加以区分。二、命名空间的组成或命名原则1、一般将外层命名空间指定为公司名,原创 2011-09-29 15:25:48 · 2006 阅读 · 1 评论 -
c# 静态成员(静态字段,属性,方法,构造器,类)
一、静态字段 @1、与实例字段一样,可以在声明的同时进行初始化。@2、与实例字段不同,如果没有对静态字段进行初始化,静态字段将自动获取默认值(0,null,false等)。所以,一个静态字段即使没有被显示地赋值,也可以被访问。二、静态属性三、静态方法@1、t原创 2011-10-05 18:29:47 · 10968 阅读 · 0 评论 -
c# 与c/c++/java的区别(待续)
之一:c#,java 文件名与类名是否要一致 在java中文件名必须和类名一致。然而在c#中,虽然也常常遵守这一约定,但不是必需的。在c#zhong ,一个文件中可以有两个类。而且从c#2.0开始,一个类的代码也可以分别在几个文件中,这种类叫分部类。之二:原创 2011-09-15 20:19:04 · 531 阅读 · 0 评论 -
C# 委托的应用1:将方法作为参数传递给另一个方法
长期以来,c和c++的程序员利用方法指针,将方法作为参数传给另一个方法。c#使用委托来提供相同的功能,它将方法作为对象封装起来,允许在运行时间接地绑定一个方法调用。 下面将通过冒泡排序的例子讲解委托的产生 示例1 :该方法对一个整数数组执行升序排序原创 2011-09-14 18:48:10 · 39963 阅读 · 3 评论 -
lambda表达式
1、lambda表达式简介 lambda表达式是比匿名方法更加简洁的一种匿名函数语法,是在c#3.0中引入的。 这里的匿名函数泛指lambda表达式和匿名方法。 lambda表达式包括:语句lambda和表达式lambda 2、语句lambda原创 2011-09-14 20:24:58 · 630 阅读 · 0 评论 -
C# 堆和栈的简单介绍
堆和栈是在程序运行中用来存储数据的两个内存区域。1、栈@1、是一个内存数组,是一个先进后出的数据结构。@2、主要存储:某些类型变量的值、程序当前的执行环境、传递给方法的参数。2、堆@1、是一块内存区域,可以分配大块的内存用于存储某类型的数据。与栈不同,堆里的内原创 2011-10-01 22:46:57 · 762 阅读 · 0 评论 -
C# 异常处理
一、异常的定义 异常就是程序中的运行时错误,当出现异常时,系统会捕获这个错误并抛出一个异常。若程序没有提供处理该异常的代码,系统会挂起这个程序。二、异常处理语句:try语句1、作用:指明可能发生异常的代码块,并提供代码处理异常。2、组成(1)try块:原创 2011-10-03 14:37:46 · 6883 阅读 · 3 评论 -
c# 数据的转换操作
1、转换的类型预定义的转换:数字转换(显式转换,隐式转换),引用转换(显式转换,隐式转换),装箱转换,拆箱转换用户自定义的转换: 隐式转换,显示转换2、隐式/显示转换(强制转换)的适用情况 对于预定义的类型,若从源类型到目标类型不会发生数据丢失,c#会原创 2011-10-03 21:15:22 · 880 阅读 · 0 评论 -
类Object---所有对象的基类 简介
一、类Object简介1、类Object是 .NET Framework 中所有类、结构、枚举和委托的最终基类。2、C#通常不要求类显示声明从 Object 的继承,因为继承是隐式的。 3、因为 .NET Framework 中的所有类均从 Object 派生,所以 Object 类中定义的每个方法可用于系统中的所有对象。 派生类也可以重写这些方法中的某些。二、方法:(1)pu原创 2011-11-14 19:34:52 · 5708 阅读 · 1 评论