All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
Div布局中如何实现自适应高度_[Html教程]
ASP.NET中文件上传下载方法集合_[Asp.Net教程]
Asp.NET大文件上传组件开发总结(三)---处理文件内容_[Asp.Net教程]
使用.NET实现你的IP切换器_.net资料_编程技术
VS2005下水晶报表如何实现动态数据源绑定-_[Asp.Net教程]
asp.net2.0中Server对象的方法和属性
.Net中如何操作IIS(原理篇)_[Asp.Net教程]
PHP.MVC的模板标签系统之标签行为调度_php资料_编程技术
Visual,Studio,2005集成开发环境图解(二)_[Asp.Net教程]
C#开发里List控件的使用方法介绍_[Asp.Net教程]
Reading number is top 10 pictures
Hunan province aizhai super-large suspension bridge open to traffic and 4 world first1
你是左脑型还是右脑型
恶搞漫画1
Small QiShu -- ShuangShuangPan1
男人帮杂志里的惹火性感美女2
BingBingFan apple dew point photo gallery4
Beautiful Japanese beauty(漂亮的日本美女)2
A man's favorite things3--ZhouWeiTong
传奇套装
From China fortress sora aoi1
Download software ranking
C语言教程TXT
Boxer's Top ten classic battle3
Sora aoi - one of more PK
Tram sex maniac 2 (H) rar bag17
Unix video tutorial20
matrix2
C#高级编程(第4版)
美女游泳记
Boxer's Top ten classic battle10
Tram sex maniac 2 (H) rar bag15
aaa published in(发表于) 2013/12/17 7:55:25 Edit(编辑)
技巧汇总:C#编程的七个小技巧_.net资料_编程技术

技巧汇总:C#编程的七个小技巧_.net资料_编程技术

技巧汇总:C#编程的七个小技巧_.net资料_编程技术-你的首页-uuhomepage.com

一、最小化窗口


点击“X”或“Alt+F4”时,最小化窗口,如:


protected override void WndProc(ref Message m)
{
const int WM_SYSCOMMAND = 0x0112;
const int SC_CLOSE = 0xF060;
if (m.Msg == WM_SYSCOMMAND && (int) m.WParam == SC_CLOSE)
{
// User clicked close button
this.WindowState = FormWindowState.Minimized;
return;
}
base.WndProc(ref m);
}


二、如何让Foreach 循环运行的更快


foreach是一个对集合中的元素进行简单的枚举及处理的现成语句,用法如下例所示:


using System;
using System.Collections;
namespace LoopTest
{
class Class1
{
static void Main(string[] args)
{
// create an ArrayList of strings
ArrayList array = new ArrayList();
array.Add("Marty");
array.Add("Bill");
array.Add("George");
// print the value of every item
foreach (string item in array)
{
Console.WriteLine(item);
}
}
}


你可以将foreach语句用在每个实现了Ienumerable接口的集合里。如果想了解更多foreach的用法,你可以查看.NET Framework SDK文档中的C# Language Specification。


在编译的时候,C#编辑器会对每一个foreach 区域进行转换。


IEnumerator enumerator = array.GetEnumerator();
try
{
string item;
while (enumerator.MoveNext())
{
item = (string) enumerator.Current;
Console.WriteLine(item);
}
}
finally
{
IDisposable d = enumerator as IDisposable;
if (d != null) d.Dispose();
}


这说明在后台,foreach的管理会给你的程序带来一些增加系统开销的额外代码。


三、将图片保存到一个XML文件


WinForm的资源文件中,将PictureBox的Image属性等非文字内容都转变成文本保存,这是通过序列化(Serialization)实现的,
例子:


using System.Runtime.Serialization.Formatters.Soap;
Stream stream = new FileStream("E:\\Image.xml",FileMode.Create,FileAccess.Write,FileShare.None);
SoapFormatter f = new SoapFormatter();
Image img = Image.FromFile("E:\\Image.bmp");
f.Serialize(stream,img);
stream.Close();


四、屏蔽CTRL-V


在WinForm中的TextBox控件没有办法屏蔽CTRL-V的剪贴板粘贴动作,如果需要一个输入框,但是不希望用户粘贴剪贴板的内容,可以改用RichTextBox控件,并且在KeyDown中屏蔽掉CTRL-V键,例子:


private void richTextBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if(e.Control && e.KeyCode==Keys.V)
e.Handled = true;
}


五、判断文件或文件夹是否存在


使用System.IO.File,要检查一个文件是否存在非常简单:


bool exist = System.IO.File.Exists(fileName);


如果需要判断目录(文件夹)是否存在,可以使用System.IO.Directory:


bool exist = System.IO.Directory.Exists(folderName);


六、使用delegate类型设计自定义事件


在C#编程中,除了Method和Property,任何Class都可以有自己的事件(Event)。定义和使用自定义事件的步骤如下:
(1)在Class之外定义一个delegate类型,用于确定事件程序的接口
(2)在Class内部,声明一个public event变量,类型为上一步骤定义的delegate类型
(3)在某个Method或者Property内部某处,触发事件
(4)Client程序中使用+=操作符指定事件处理程序


例子: // 定义Delegate类型,约束事件程序的参数


public delegate void MyEventHandler(object sender, long lineNumber) ;
public class DataImports
{
// 定义新事件NewLineRead
public event MyEventHandler NewLineRead ;
public void ImportData()
{
long i = 0 ; // 事件参数
while()
{
i++ ;
// 触发事件
if( NewLineRead != null ) NewLineRead(this, i);
//...
}
//...
}
//...
}
// 以下为Client代码
private void CallMethod()
{
// 声明Class变量,不需要WithEvents
private DataImports _da = null;
// 指定事件处理程序
_da.NewLineRead += new MyEventHandler(this.DA_EnterNewLine) ;
// 调用Class方法,途中会触发事件
_da.ImportData();
}
// 事件处理程序
private void DA_EnterNewLine(object sender, long lineNumber)
{
// ...
}


七、IP与主机名解析


使用System.Net可以实现与Ping命令行类似的IP解析功能,例如将主机名解析为IP或者反过来:


private string GetHostNameByIP(string ipAddress)
{
IPHostEntry hostInfo = Dns.GetHostByAddress(ipAddress);
return hostInfo.HostName;
}
private string GetIPByHostName(string hostName)
{
System.Net.IPHostEntry hostInfo = Dns.GetHostByName(hostName);
return hostInfo.AddressList[0].ToString();
}





添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.