文章分类 - C#
About C#
摘要:在C#中提供了三种类型的计时器:1、基于 Windows 的标准计时器(System.Windows.Forms.Timer)2、基于服务器的计时器(System.Timers.Timer)3、线程计时器(System.Threading.Timer)一、基于 Windows 的标准计时器(Syst...
阅读全文
摘要:想一次Load后,一直能够使用的全局变量,在回传的时候能够不消失。结果每次都会重置,查找资料发现需要重写ViewState的一些操作。 //Persist Viewstate protected override void LoadViewState(object savedState) { object[] viewState = (object[])savedState; ArrayList al = viewState[0] as ArrayList; if (al != null...
阅读全文
摘要:Global::表示所有命名空间的根部Global.asa 文件的作用主要是用于站点或虚拟目录下程序的数据共享和多线程。在 global.asa 中,可以声明 Application 事件和 Session 事件,并可以声明一些 Session 范围或者 Application 范围的对象当我们使用一个命名空间(namespace)时,可能使用了和framework一样的名字。此时为了向编译器指明使用framework的namespace,那么使用Global::进行指明举个例子:如果我们自己的代码里写了一个Console类public class Console{}那当我们调用Console
阅读全文
摘要:有时我们在项目需要操作Excel文件,读或写,导出数据等。 下面列了一些:1. TMS Flexcel Studio for .NETTMS Flexcel Studio for .NET是一个完整托管引擎下操作Excel文件,让开发人员从各种.net平台例如WinForms , ASP.NET , PocketPC 生成Excel文件。The TMS Flexcel Studio for .NET 也可以在没有安装Micrsoft Office软件的情况下实现读,创建,更新Excel文件。了解更多关于 TMS Flexcel Studio for .NET在这里儿2. GemBox Spr.
阅读全文
摘要:正则表达式通常包含字母文本(Literaltext)和元字符(metacharacter)字母文本指的是普通文本如"abcde"可匹配字符串中任何包含"abcde"的字符串。元字符则更加灵活运用通用的表达式匹配所有符合此表达式规律的字符串。C#正则表达式语法一、匹配单个字符 []——从中选择一个字符匹配中间支持的类型:单词字符([ae])、非单词字符([!?,;@#$*])、字母范围([A-Z])、数字范围([0])eg.正则表达式[ae]ffect可匹配字符串 affect,effect(此例中"[ae]"为元字符,"ff
阅读全文
摘要:两种办法第一种,直接打入网址用默认程序打开System.Diagnostics.Process.Start("http://www.baidu.com");第二种,使用指定程序并传入参数后打开System.Diagnostics.Process.Start(@"C:\ProgramFiles\InternetExplorer\IEXPLORE.EXE","http://www.baidu.com");
阅读全文
摘要:【背景】写了个C#的小程序,其中在Settings窗体中有些配置参数,希望在鼠标移动到对应的配置选项上,动态显示相关的说明解释内容。【解决过程】1.原先就已经知道,有些控件,是带ToolTipText的属性的,所以直接写入对应提示内容就可以了。但是现在想要实现的带提示内容的控件,也包括那些本身没有ToolTip属性的控件。所以想要找到对应的解决办法。2.网上有人说,从ToolBox中拖一个ToolTip,放到对应控件上即可,我试了试,不好用。因为有些提示内容,是想要单独添加给某个checkbox之类的控件的,而单独的拖动ToopTip过去,往往只能放到比较大的面板上,比如TabPage上面,所
阅读全文
摘要:注意:热键和快捷键是整合在一起的应用中,我们可能会需要实现像Ctrl+C复制、Ctrl+V粘贴这样的快捷键,本文简单介绍了它的实现,并给出了一个实现类。(1)建立一个类文件,命名为HotKey.cs,代码如下:using System;using System.Collections.Generic;using System.Runtime.InteropServices;using System.Windows.Forms;namespace KoalaStudio.BookshopManager{ class HotKey { //如果函数执行成功,返回值不为0。 //如果函数执行失败,返
阅读全文
摘要:虽然Form类没有提供Minimize的事件,但还是可以通过重载Deactive来实现当Form失去焦点后,测试WindowState取得Form状态,若为Minimized既是最小化事件。本例为最小化后隐藏窗口:privatevoidForm1_Deactivate(objectsender,EventArgse){if(this.WindowState==FormWindowState.Minimized)this.Visible=false;}还有种方法更加直接,重载WndProc:constintWM_SYSCOMMAND=0x112;constintSC_CLOSE=0xF060;c
阅读全文
摘要:动态向SqlParameter 里添加相应参数,方法如下先定义一个List,然后再往List里面添加SqlParameter对象,然后将List转为SqlParameter数组即可List<SqlParameter> ilist = new List<SqlParameter>(); ilist.Add(new SqlParameter("@Param1", "1")); ilist.Add(new SqlParameter("@Param2", "2")); ilist.Add(new S
阅读全文
摘要:PDF 浏览:http://www.tracefact.net/Document/Delegates-and-Events-in-CSharp.pdf文中代码在VS2005下通过,由于VS2003(.Net Framework 1.1)不支持隐式的委托变量,所以如果在一个接受委托类型的位置直接赋予方法名,在VS2003下会报错,解决办法是显式的创建一个委托类型的实例(委托变量)。例如:委托类型 委托实例 = new 委托类型(方法名); 欢迎浏览本文的后续文章: C#中的委托和事件(续)源码下载:http://www.tracefact.net/SourceCode/Delegates-and
阅读全文
摘要:结构体的定义:结构体也可以象类一样可以单独定义.class a{};struct a{};结构体也可以在名字前面加入控制访问符.publicstruct student{};internalstruct student{};如果结构体student没有publice或者internal的声明 类program就无法使用student结构定义 obj对象如果结构体student的元素没有public的声明,对象obj就无法调用元素x因为默认的结构体名和元素名是*******类型程序:using System;publicstruct student { publicint x; };class
阅读全文
摘要:vs中的///文档注释类似java中/** */文档注释。能自动的生成帮助文档。如果我想在每次创建文件时,自动生成文档注释(注意是自动生成文档注释而不是帮助文档),如下面的代码,需要设置VS的模板,新创建的cs类文件会根据模板的样子进行生成。01using System;02using System.Collections.Generic;03using System.Linq;04using System.Text;0506namespace MODEL07{08///09/// FileName: Class1.cs10/// CLRVersion: 2.0.50727.305311///
阅读全文
摘要:C#有string关键字,在翻译成.NET类时,它就是System.String.有了它,像字符串连接和字符串复制这样的操作就简单了.1. string 是引用类型还是值类型引用类型操作当使用重载操作符”=”给string对象赋值时,string的对象是引用类型,它保留在堆上,而不是堆栈上.因此,当把一个字符串赋给另一个字符串时,会得到对内存中同一个字符串的两个引用.例如,修改其中一个字符串,就会创建一个全新的string对象(注意,这个过程发生在”=”中),而另一个字符串没有改变.考虑下面的代码:public class MyClass{ public static void Main()
阅读全文
摘要:其实他们两个都是委托【代理】的简写形式。一、【action<>】指定那些只有输入参数,没有返回值的委托Delegate的代码:[csharp] public delegate void myDelegate(string str); public static void HellowChinese(string strChinese) { Console.WriteLine("Good morning," + strChinese); Console.ReadLine(); } myDelegate d = new myDelegate(HellowChines
阅读全文
摘要:switch语句是我们日常工作中最常见也是争论最多的(goto被忽视的前提下)。在重构中也把switch语句看成是一种代码的坏味道。但如何改造现有的switch代码并在今后去避免呢?本文从两方面进行探讨。1 类型转化 在不同的抽象层次上对于同一个对象可能会用不同的定义。举个简单的例子,在计算器中,用户输入的操作符号可能是字符型的,而程序内部实现的时候需要用枚举型。因此可能就会有这样的函数。 publicclassCalculator {publicenumOPERATOR {Add, Minus, Multiply, Divide, Unknown}; publicsta...
阅读全文
摘要:如果在为方法声明参数时未使用 ref 或 out,则该参数可以具有关联的值。可以在方法中更改该值,但当控制传递回调用过程时,不会保留更改的值。通过使用方法参数关键字,可以更改这种行为。paramsparams 关键字可以指定在参数数目可变处采用参数的方法参数。在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。示例:字面意思比较难懂,所以看示例很有用。// keywords_params.cs using System; class App // keywords_params.cs { publicstaticvoid Use...
阅读全文
摘要:在VS2010中,单元测试的功能很强大,使得建立单元测试和编写单元测试代码,以及管理和运行单元测试都变得简单起来,通过私有访问器可以对私有方法也能进行单元测试,并且支持数据驱动的单元测试。1、建立单元测试项目 1.1、从被测试代码生成单元测试 1)实例:创建VC#模式下的控制台应用程序,工程名为CUnitTest 2)输入简单的加、减、乘、除函数代码,如下图所示3)可按如下步骤建立单元测试(1)在Add方法体内,单击鼠标右键,在菜单中选择"创建单元测试",(2)在出现的"创建单元测试"界面中,Add方法被自动勾上,表示要为这个方法创建单元测试代码的基本框
阅读全文
摘要:1. ReferenceEquals, == , EqualsEquals , == , ReferenceEquals都可以用于判断两个对象的个体是不是相等。a) ReferenceEqualsReferenceEquals是Object的静态方法,用于比较两个引用类型的对象是否是对于同一个对象的引用。对于值类型它总是返回false。(因为Box以后的对象总是不同的,hehe)b) ==是一个可以重载的二元操作符,可以用于比较两个对象是否相等。对于内置值类型,==判断的是两个对象的代数值是否相等。它会根据需要自动进行必要的类型转换,并根据两个对象的值是否相等返回true或者false。例如:
阅读全文
摘要:在学习.NET的过程中,都会不可避免地接触到这三个概念,那么这三个东西是什么以及它们之间的关系是怎样的呢?我们在学习的过程中可能比较过多的会去关注CLR,因为CLR是.NET Framework的核心,但是我要说的是CTS和CLS更为重要,因为他们是CLR的核心。任何编程语言,如果想要在.NET CLR上执行,就必需提供一个编译器,将此语言的程序编译成.NET CLR所认识的metadata以及IL,符合CTS的规定。并非所有的语言都能和C#一样符合CTS的规范,毕竟许多语言出现在先,CTS出现在后,所以有一些旧的语言未能符合CTS的规定。这类的语言在.NET中有下列三种方式来符合CTS规范:
阅读全文

浙公网安备 33010602011771号