08
2012
04

C# 注释及随机数

1、///
/// 填写注释信息,对类的注释
///

private void class example()
{
//写一些代码
}
当你在某处引用上面的类example时,把鼠标放到引用的代码example类上,就可以看到我们填写的注释信息和完整的类定义。
///
/// 创建数据库,对类里面的函数的注释
///

...
08
2012
04

一个窗口调用另一个窗口的控件

我们假设主窗口位 MainForm类,子窗口为ClientForm 类:
是在子窗口ClientForm放一个变量
public FormMain myMainWindow;

然后 在主窗口里调用子窗口的时候写:
ClientForm frmClient = new ClientForm();
frmClient.myMainWindow = this;
myMainWindow.Show();
要调用主窗体的那个控件,就把那个控件的modifiers属性设为public
这样在ClientForm 里就可通过mainform来访问MainForm中所有控件了
...
08
2012
04

C# 三层体系结构

三层结构包含:数据访问层(DAL),业务逻辑层(BLL),表示层(USL) 
1:数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务.   
2:业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。   
3:表示层:主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表现成:aspx, 如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。
...
07
2012
04

C# 派生类中的构造函数

using System;
public class Person //基类
{
private string name;
private int age;
private long ID;
public Person(string n, int a, long i)
{
name = n;
age = a;
ID = i;
}
public virtual void Display()
{
...
07
2012
04

C# 类,对象,封装,继承和多态

类是将一些方法和字段组合在一起的一个块。
对象是类的实例。用来描述实体。
继承是将一个类的方法和字段让另一个类变得可见。
多态就是一个类有多个构造函数。这些构造函数具有不同的参数。

就要编程编程再编程
代码量5000行以上,你就有点感觉了
10000行以上你知道他为什么要这么做了
20000行以上你知道改怎么做了
50000行以上你就能用它来解决实际的问题了
他们是OOP的精华


类是具有相同属性和共同行为的一组对象的集合
对象是存在的具体实体,具有明确定义的属性和行为
封装是隐藏属性、方法或实现的详细信息的处理方式
...
07
2012
04

C# 可复用的代码

刚开始干这一行的时候,对代码的复用有很高的热情。那时候总是希望自己写出的function、class、模块都是可以复用的,能够优美的解决所有问题。但是往往事于愿违,设计的变更、需求的变更、种种没有预料的情况最终把自己的代码摧毁的面目全非。有时一个简单的function会出现各种不同的版本,SendMessage、SendMessage2、SendMessageEx……在注释中说明其间微妙的区别。复用的计划最终破产。经历打击后,又走向另一个极端:使用copy-paste解决问题。不在乎代码的复用性,放弃优美,走向彻底的实现主义。各种bad smell不断出现在代码中,疯狂的复制粘贴,然后稍加修改。一旦变更,到处修改。面对需求变更、产品升级、杂乱纠缠的代码、过时的文档,真是一种痛苦的经历。
...
07
2012
04

C# 从剪贴板中获取数据

今天我们同学问我如何利用C#把剪贴板里的图片存出来,我看了看,非常简单

IDataObject data = Clipboard.GetDataObject();//从剪贴板中获取数据
if(data.GetDataPresent(typeof(Bitmap)))//判断是否是图片类型
{
Bitmap map = (Bitmap) data.GetData(typeof(Bitmap));//将图片数据存到位图中
this.pictureBox1.Image = map;//显示
...
07
2012
04

C# Word对象

Word的对象库文件:MSWORD.OLB --C:\Program Files\Microsoft Office\OFFICE11--Office2003
.NET提供的转换工具:TlbImp.exe --C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin--VS2005
把MSWORD拖到TlbImp.exe上就会编译出Word.dll程序集

利用C#语言能够利用COM组件的特性,再利用.NET平台下的的Tlbimp.exe实用程序把Office内核MSWORD.OLB转换为Word.dll动态链接库,这样C#语言就能够直接使用其中的方法进行编程了。
...
07
2012
04

VS2008生成dll文件

打开VS2008,依次点击:菜单->文件->新建项目->项目类型visual C#(这里假设为该项目所取的名字是DllBuild)->类库(注意必须是类库),即新建一个由纯.cs 类库文件组成的程序集,写好代码之后(例如写了一个名为DllTest.cs的类,该类的namespace取名为DllTestNS),再依次点击:菜单->生成->生成DllBuild,这样你 的DllBuild/DllBuild/bin/Debug文件夹或者DllBuild/DllBuild/obj/Debug文件夹里便会自动生成 dll文件啦,该文件名称与项目名称一致,即为DllBuild.dll。...
06
2012
04

C# string与StringBuilder的区别

StringBuilder类---动态创建可变长字符串
Append() 方法 ToString()方法
Length 属性
StringBuilder.Append 将信息追加到当前 StringBuilder 的结尾。



String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的 String 对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用 System.Text.StringBuilder 类。例如,当在一个循环中将许多字符串连接在一起时,使用 StringBuilder 类可以提升性能。
...
06
2012
04

C# richtextbox保持字体格式

FontDialog fd = new FontDialog();//字体框
DialogResult d = fd.ShowDialog();//显示
if (d.Equals(DialogResult.OK))
{
if (richTextBox1.SelectedText.Length==0)//如果未选定,那么就修改全部
richTextBox1.Font = fd.Font;
else
//修改选定的文本
richTextBox1.SelectionFont = fd.Font;
...
06
2012
04

C# Parse , Covert.To,TryParse数据转化

Int32.TryParse()优于Int32.Parse()优于Convert.ToInt32()。
Convert.ToInt32会把最终的解析工作代理给Int32.Parse,而Int32.Parse和Int32.TryParse则分别把解析工作直接代理给Number.ParseInt32和Number.TryParseInt32,前者在出现解析错误时会抛出异常,而后者则仅仅返回 false。
Convert.ToInt32 与Int32.Parse 较为类似,实际上 Convert.ToInt32 内部调用了Int32.Parse。
...
06
2012
04

C# Interop.Word类库

Word 错误类型:“系统找不到 Microsoft.Office.Interop.Word"


今天用C#写了一个在Word中搜索指定的文本这样的一个应用程序,结果编译出现错误:

"Could not load file or assembly 'Microsoft.Office.Interop.Word, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' or one of its dependencies."
...
06
2012
04

C# eqauls 与 = =之异同

eqauls 与 = =之异同
1 比较方式角度:
= =是面向过程的操作符;equals是面向对象的操作符
= =不属于任何类,equals则是任何类(在Java中)的一个方法;
我们可以

2 比较目的角度:
1)如果要比较两个基本类型是否相等,请用= =;
2)如果要比较两个对象引用是否相等,请用= =;
3)如果要比较两个对象(逻辑上)是否一致,请用equals;


string temp = Console.ReadLine();
if(temp.Equals(s[i - 1].StuId)
...
05
2012
04

C# Controls集合

Controls是一个集合
this.Controls包含当前窗体的所有控件
this.Controls.Add(myButton)就是把myButton添加到当前窗体

  一个集合,其元素代表部件中的控件。 Controls集合的Count属性用于表明集合中的控件数量,而其Item方法则返回集合中的一个成员。
  语法
  object.Controls.Count
  object.Controls(index)
  Controls 集合的语法包括下述部分:
  部分 描述
  Object 一个对象表达式,其值为“应用于”列表中的对象。
...
05
2012
04

C# 剪贴板Clipboard

Clipboard()
  功能提取或替换Windows系统剪贴板的文本内容。
  语法Clipboard ( { string } )
  参数string:string类型,可选项,指定要复制到系统剪贴板上的文本。如果剪贴板上已有内容的话,该文本将取代剪贴板的当前内容返回值String。函数执行成功时,如果剪贴板上包含文本数据,那么函数返回剪贴板的当前内容;如果剪贴板上包含非文本数据(比如位图)或不包含任何数据,那么函数返回空字符串("")。如果string参数的值为NULL,Clipboard()函数返回NULL。用法无论是否指定string参数,Clipboard()都将返回剪贴板的当前内容。当指定string参数时,剪贴板的原有内容被string参数的值取代;省略string参数时,仅仅得到剪贴板的内容。...
05
2012
04

C# Word操作

要操作Word,我们就需要Word的对象库文件“MSWORD.OLB”(word 2000为MSWORD9.OLB),通常安装了Office Word后,你就可以在office安装目录的Office10文件夹下面找到这个文件,当我们将这个文件引入到项目后,我们就可以在源码中使用各种操作函数来操作Word。具体做法是打开菜单栏中的项目>添加引用>浏览,在打开的“选择组件”对话框中找到MSWORD.OLB后按确定即可引入此对象库文件,vs.net将会自动将 库文件转化为DLL组件,这样我们只要在源码中创建该组件对象即可达到操作Word的目的!
...
05
2012
04

C# 中结构体和类的比较

区别:
结构是一种用关键字struct声明的自定义数据类型。与类相似,也可以包含构造函数,常数,字段,方法,属性,索引器,运算符和嵌套类型等,不过,结构是值类型。
1.结构的构造函数和类的构造函数不同。
a.结构不能包含显式的无参数构造函数。结构成员讲自动初始化为它们的默认值。
b.结构不能包含以下形式的初始值设定类:base(argument-list);
2.对于结构中的实例字段成员,不能在声明时赋值初始化。
3.声明了结构类型后,可以使用new运算符创建构造对象,也可以不使用new关键字。如果不使用new,那么在初始化所有字段之前,字段将保持未赋值状态且对象不可用。
...
05
2012
04

C# 常用控件及单击事件

1、窗体
1、常用属性
(1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体。
(2)WindowState属性: 用来获取或设置窗体的窗口状态。 取值有三种: Normal (窗体正常显示)、 Minimized(窗体以最小化形式显示)和 Maximized(窗体以最大化形式显示)。
(3)StartPosition属性:用来获取或设置运行时窗体的起始位置。(System.Windows.Forms.SystemInformation.WindowsArea.Height获取显示器的高度)
...
05
2012
04

C# Activate、Deactivate事件

Activate、Deactivate 事件
  Activate -当一个对象成为活动窗口时发生。
  Deactivate -当一个对象不再是活动窗口时发生。
  语法
  Private Sub object_Activate( )
  Private Sub object_Deactivate( )
  object 所在处代表一个对象表达式,其值是“应用于”列表中的一个对象。
  说明
  一个对象可以通过诸如单击它,或使用代码中的 Show 或 SetFocus 方法之类的用户操作而变成活动的。
...