幼儿编程论文(幼儿编程启蒙)

2023-12-11 04:18:14 数码极客 bianji01

 

理解基于对象编程的实质,写一篇关于编程方法分析或议论的课程小论文

一、最小化窗口

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

protectedoverridevoidWndProc(refMessagem)

constintWM_SYSCOMMAND=0x0112;

constintSC_CLOSE=0xF060;

if(m.Msg==WM_SYSCOMMAND&&(int)m.WParam==SC_CLOSE)

//Userclickedclosebutton

this.WindowState=FormWindowState.MinimiZed;

return;

base.WndProc(refm);

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

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

usingSystem;

usingSystem.Collections;

namespaCELoopTest

classClass1

staticvoidMain(string[]args)

//createanArrayListofstrings

ArrayListarray=newArrayList();

array.Add("Marty");

array.Add("Bill");

array.Add("George");

//printthevalueofeveryitem

foreach(stringiteminarray)

Console.WriteLine(item);

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

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

IEnumeratorenumerator=array.GetEnumerator();

stringitem;

while(enumerator.MoveNext())

item=(string)enumerator.Current;

Console.WriteLine(item);

finally

IDIsposabled=enumeratorasIdisposable;

if(d!=null)d.Dispose();

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

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

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

usingSystem.Runtime.Serialization.Formatters.Soap;

Streamstream=newFileStream("E:\\Image.xml",FileMode.Create,FileAccess.Write,FileShare.None);

SoapFormatterf=newSoapFormatter();

Imageimg=Image.FromFile("E:\\Image.bmp");

f.Serialize(stream,img);

stream.Close();

四、屏蔽CTRL-V

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

privatevoidrichTextBox1_KeyDown(objectsender,System.Windows.Forms.KeyEventArgse)

if(e.Control&&e.KeyCode==Keys.V)

e.Handled=true;

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

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

boolexist=System.IO.File.Exists(fileName);

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

boolexist=System.IO.Directory.Exists(folderName);

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

在C#编程中,除了Method和Property,任何Class都可以有自己的事件(Event)。

百事通定义和使用自定义事件的步骤如下:

(1)在Class之外定义一个delegate类型,用于确定事件程序的接口

(2)在Class内部,声明一个publicevent变量,类型为上一步骤定义的delegate类型

(3)在某个Method或者Property内部某处,触发事件

(4)Client程序中使用+=操作符指定事件处理程序

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

publicdelegatevoidMyEventHandler(objectsender,longlineNumber);

publicclassDataImports

//定义新事件NewLineRead

publiceventMyEventHandlerNewLineRead;

publicvoidImportData()

longi=0;//事件参数

while()

//触发事件

if(NewLineRead!=null)NewLineRead(this,i);

//...

//...

//...

//以下为Client代码

privatevoidCallMethod()

//声明Class变量,不需要WithEvents

privateDataImports_da=null;

//指定事件处理程序

_da.NewLineRead+=newMyEventHandler(this.DA_EnterNewLine);

//调用Class方法,途中会触发事件

_da.ImportData();

//事件处理程序

privatevoidDA_EnterNewLine(objectsender,longlineNumber)

//...

七、IP与主机名解析

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

privatestringGetHostNameByIP(stringipAddress)

IPHostEntryhostInfo=Dns.GetHostByAddress(ipAddress);

returnhostInfo.HostName;

privatestringGetIPByHostName(stringhostName)

System.Net.IPHostEntryhostInfo=Dns.GetHostByName(hostName);

returnhostInfo.AddressList[0].ToString();

本回答由网友推荐

声明:易趣百科所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系315127732@qq.com
广告位招租
横幅广告