- 博客(29)
- 收藏
- 关注
原创 静态构造函数
一个给定的类只能定义一个静态构造函数 静态构造函数仅执行一次,与创建了多少个这种类型的对象无关。 静态构造函数不带访问修饰符,也不能带任何参数 静态构造函数在任何实例级别的构造函数之前执行
2010-01-25 14:50:00
385
原创 static
STATIC 静态数据在实例化后,是不重新创建副本的,而是所有实例共享 静态方法只能操作静态数据;实例方法可以操作静态和非静态数据 调用静态方法必须加上该方法的累的名字作为前缀
2010-01-25 14:40:00
325
原创 数据绑定,支持多线程间访问
/// /// 数据绑定,支持多线程间访问 /// /// /// 数据源 /// 显示名 /// 数值名 public static void DataSourceEx(this Comb
2010-01-25 09:33:00
497
原创 DGV页面中删除List数据源
if (dgvPersonFile.Rows.Count > 0) dgvPersonFile.EndEdit(); foreach (DataGridViewRow row in dgvPersonFile.Rows) { var item = row.DataBoundItem
2010-01-06 09:31:00
405
原创 远程控制关机与重启
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Management; namespac
2010-01-06 09:25:00
603
原创 C#小数点格式化
1.ToString()方法 double d=12345678.2334; Console.WriteLine(d.ToString("F2")); //1234.23 Console.WriteLine(d.ToString("###,###.00")); //12,345,678.23 2.Math.Round()方法 Math.Round(3.44, 1);
2009-12-07 11:04:00
2384
原创 两个MenuStrip不自动合并设置项
两个MenuStrip若不设置则将自动合并菜单选项,可修改子窗体MenuStrip的AllowMerge取消自动合并
2009-12-01 14:15:00
740
原创 Textbox中每隔4个数字空一格
bool m_AddBlank = false; private void textBox1_TextChanged(object sender, EventArgs e) { if (m_AddBlank == true) { m_AddBlank = fal
2009-11-23 11:07:00
615
原创 C#反射技术之二读取Attribute特性
我们可以通过一个类的Type的GetCustomAttributes方法来读取这个类上所附加的特性。 class KeyAttribute : Attribute{ } //定义特性(标签)[KeyAttribute] //打上特性(标签)public int Key { get; set; } 读取到类所对应的表的特性了,接下来我们该读取类里包含的属性上所附加的
2009-11-23 10:12:00
1652
原创 C#反射技术之一读取和设置类的属性
要用C#反射技术的话,首先得引入System.Reflection 命名空间,这个命名空间里的类,具有动态加载程序集、类型,动态调用方法、设置和取得属性和字段的值、可以获取类型和方法的信息的功能。 要想对一个类型实例的属性或字段进行动态赋值或取值,首先得得到这个实例或类型的Type,微软已经为我们提供了足够多的方法。 Class MyClass { private int fi
2009-11-23 09:37:00
508
原创 需多个判断的情况下使用的方法
private Dictionarystring, string> fileTypeDic = new Dictionarystring, string>(); protected void InitFileTypeDic() { //此处可调用xml,inc,数据库或其他conf操作
2009-11-23 09:27:00
354
原创 值类型和引用类型的不同
using System;// 值类型struct MyStruct{ public int Age; public MyStruct(int age) { Age = age; }}// 引用类型class MyClass{ public int Age; public MyClass(int age) { Age = age; }
2009-11-23 09:13:00
291
原创 将DGV1中选中的行显示到DGV2中
/// /// 将DGV1中选中的行显示到DGV2中 /// /// /// private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) {
2009-11-19 14:46:00
718
2
原创 泛型学习笔记
泛型 泛型不仅限于类,还可以被用于委托、接口和方法。 泛型的优点: 1. 性能:对于值类型使用非泛型集合类,在把值类型转换为引用类型,和把引用类型转化为值类型时需要进行装箱和拆箱操作。装箱和拆箱操作很容易使用,但性能损失比较大,迭代许多项时尤其如此。 2. 类型安全: Listint> list = new Listint>();list.Add(40);
2009-11-19 09:23:00
322
原创 将类转变为对象,取其中需要的值
/// /// 新建类 /// class DgvTest { public int Id { get; set; } public string Name { get; set; } } /// /
2009-11-18 15:46:00
275
原创 匹配数组内元素,输出匹配值的序号示例
private void test() { int[] a = new int[] { 1, 2 }; //新建个一维数组 int i = 2; //你需要匹配的值 foreach (var j in a) //循环遍历 { if (i =
2009-11-18 14:05:00
1079
原创 经典冒泡算法实例
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication3 { class Program { static void Main(string[] args)
2009-11-18 10:01:00
497
原创 c#.NET程序打包方法
1.打开要打包的“.lsn”文件,在“解决方案资源管理器”中随便打开一个窗口 2.菜单栏“文件”--->“添加”--->“新建项目” 3. 点击“项目类型”--->“其他项目类型”--->“安装和部署”,再在“模板”点击“安装项目”,点击“确定” 4.在“文件系统”中点击“应用程序文件夹”,右边框变空白,在空白处右击鼠标,“添加”--->点击“项目输出”,出现一个对话框,点击
2009-11-17 15:05:00
410
原创 Invoke的用法
Invoke的用法(C#) 在多线程编程中,我们经常要在工作线程中去更新界面显示,而在多线程中直接调用界面控件的方法是错误的做法,Invoke 和 BeginInvoke 就是为了解决这个问题而出现的,使你在多线程中安全的更新界面显示。 正确的做法是将工作线程中涉及更新界面的代码封装为一个方法,通过 Invoke 或者 BeginInvoke 去调用,两者的区别就是一个导致工作线程等待,而
2009-11-17 14:48:00
703
原创 控制DOUBLE,DECIMAL小数点的位数
double a = 12.357; double b = double.Parse(a.ToString("0.00"));decimal d = 12.34m; decimal dNew = decimal.Round(d,2);//2表示舍入到2位小数.csharpcode, .csharpcode pr
2009-11-17 14:39:00
434
原创 SQL清空数据技巧
在用mssql时 偶尔需要清空数据 以前一直用delete 有个缺陷:自动编号的ID列不能归零。 今天发现有个好的办法: Truncate Table [表名]这个可以直接清空数据(delete是逐行删除),并把自动编号的归零。
2009-11-17 14:36:00
264
原创 DataGridView绑定List时无法进行添加删除操作的解决方法
将List转换为BindingList,然后设置DataGridView的DataSource为BindingList!! 代码: DataGridView.DataSource = new BindingList(List);将绑定BindingList的DataSource转化为List,同理 代码:List modelList=new List((BindingL
2009-11-17 14:34:00
924
原创 .NET第七章
const与readonly const应该称为常量; readonly则应称为只读变量。 const、readonly、static readonly定义的常量,指定初始值后(包括在构造函数内指定初始值)将不可更改,可读不可写。 const常量在定义时必须指定初始值,如:private const string str = 1。 而readonly和static readonly在声明
2009-11-17 14:30:00
485
原创 .NET第六章
new关键字: 1)作为运算符,用于创建对象和调用构造函数。 2)作为修饰符,用于向基类成员隐藏继承成员。 实现派生类中隐藏方法,则基类方法必须定义为virtual,在派生类中通过 new或override进行灵活控制。而new和override不可共存,因为new用于实现创建一个新成员,同事隐藏基类的同名成员,而override用于实现对基类成员的扩展。
2009-11-17 13:51:00
339
原创 .NET第四章
类型: 基本概念: 值类型:通常分配在线程的堆栈上,并且不包含任何指向实例数据的指针,因为变量本身就包含了其实例数据。MSDN中的定义为值类型直接包含它们的数据。 引用类型:实例分配在托管堆上,变量保存了视力数据的内存引用,MSDN中的定义为引用类型存储对值的内存地址的引用,位于堆上。 嵌套结构: 指在值类型中嵌套定义了引用类型,或者在引用类型变量中嵌
2009-11-17 11:35:00
280
原创 .NET第二章
设计原则: 单一职责原则(SRP) 核心思想:一个类,最好只做一件事,只有一个引起它变化的原因。 建议:一个类只有一个引起它变化的原因,否则就应当考虑重构。 SRP由引起变化的原因决定,而不由功能职责决定。 开放封闭原则(OCP) 核心思想:对扩展开放,意味着有新的需求或变化时,可以对现在代码进行扩展,以适应新的情况
2009-11-17 11:00:00
264
原创 .NET第一章
访问修饰符的开放性从高到低排序及说明: Public:开放性最大,不管是否同一个程序集或者不管是否继承,都可被访问。 Protected Internal:不论是否为同一程序集,是否为继承关系,均可以被访问。 Protected:只要继承了该类,则其对象就有访问父类的权限,而不管这两个具有继承关系的泪是否在同一个程序集中。 Internal:只要是隶属于同一程序集,
2009-11-17 10:54:00
352
原创 委托的方法与使用
namespace DelegateTest{ class Program { //定义委托,它是一个函数声明,但是没有实现 public delegate string Mydelegate(string s); // 定义类 public class A {
2009-11-17 10:37:00
329
原创 DateTime.Now的相等判断方法
DateTime.Now的最小单位不是1秒,是 100纳秒,也就是,DateTime.Now可以描述到100纳秒的级别,所以别看两个时间秒相同,其实他们不一定相等, 要如何判断,如果要完全相等的话,那就要 if( DateTime.Now.Ticks == RestStartTime.Ticks ) 这样就判断完全相等了, 否则,就要 TimeSpan times = R
2009-11-16 14:45:00
952
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人