博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Component类应用
阅读量:6342 次
发布时间:2019-06-22

本文共 2096 字,大约阅读时间需要 6 分钟。

Code
/*组建必须实现system.ComponentModel.IComponent接口或者继承实现这个接口的类(Component)
Component类提供制作组件所需的方法,属性与事件
包括释放资源的方法Dispose()取得所属容器的属性Container等
Component类中Dispose方法释放资源
public void Dispose();
protected virtual void Dispose(bool disposing);
传入的参数为true时,则释放对象持有资源若为false则只释放其中未受管理的资源。
实现一个组件时,复写基础类Dispose(bool)方法,并且在客户端程序代码中调用Dispose(),由这个
方法调用传入true的布尔参数,清除所有未受管理以及管理的资源,另外,必须实现析构函数,以在Dispose
未被调用时进行未受管理资源的清除工作。
 
*/
using System.IO ;
using System .Text ;
using System .ComponentModel ;
using System ;
public class PropertyComponent:Component
{
 
private StreamReader myStreamReader;
 
private string strFilePath;
 
public string pFilePath
 {
     
get{
return strFilePath;}
     
set{strFilePath=value; }
 }
 
public void DoRead()
 {
     
if(pFilePath.Length ==0)
     {
         Console.WriteLine  (
"NO File!");
         Console.WriteLine  (
"Don't Excuting");
         
return;
     }
     
     myStreamReader
=new StreamReader (strFilePath);
     Console.WriteLine (
"start read file!");
     ReadText();
     
 }
 
private void ReadText()
 {
     
string strBufferText;
     
try
     {
       
do
       {     strBufferText
=myStreamReader.ReadLine ();
          Console.WriteLine (strBufferText);
         
       }
while(strBufferText!=null);
    }
     
catch(Exception e)
         
     {
             Console.WriteLine (e.ToString ());
         
     }
     
 }
 
protected override void Dispose(bool disposing)
 {
     
if(disposing==true&&strFilePath.Length >0)
     {
         Console.WriteLine (
"parameters is true");
         Console.WriteLine (
"close stream object");
         myStreamReader.Close ();         
     }
     
base.Dispose (disposing);//释放整个继承结构里所掌握的资源
     
 }
 
~PropertyComponent()
 {
     Console.WriteLine (
"Destructor is called");
     Console.WriteLine (
"Call Dispose(fase)");
     Dispose(
false);
 }
 
}
class UsingPropComp
{
    [STAThread ]
    
static void Main(string[] args)
    {
        
string strReadTextFile;
        PropertyComponent myPropComp
=new PropertyComponent();
        Console.WriteLine (
"Please Input FilePath:");
        strReadTextFile
=Console.ReadLine ();
        myPropComp.pFilePath
=strReadTextFile;
        myPropComp.DoRead();
        strReadTextFile
=myPropComp.pFilePath;
        
if(strReadTextFile.Length >0)
        {
            Console.WriteLine (
"readFile:{0}",strReadTextFile);
        }
        
else
        {
            Console.WriteLine (
"No Read any File!");
        }
        myPropComp.Dispose();
        Console.ReadLine();
    }
}

转载于:https://www.cnblogs.com/hubcarl/archive/2009/06/02/1494333.html

你可能感兴趣的文章
Docker(二):微服务教程
查看>>
关于JAVA项目报表选型过程
查看>>
javascript
查看>>
Spring_MVC
查看>>
Java统计文件夹中文件总行数
查看>>
python之基本数据类型及深浅拷贝
查看>>
将bootstrap弹出框的点击弹出改为鼠标移入弹出
查看>>
SKF密码设备研究
查看>>
数据对象映射模式(通过工厂模式和注册树模式)v2
查看>>
4939 欧拉函数[一中数论随堂练]
查看>>
MySQL笔记(一)
查看>>
spring boot 包jar运行
查看>>
通过VMWare安装Linux(Ubuntu) 虚拟机在Window10系统和问题解决方案
查看>>
18年秋季学习总结
查看>>
Effective前端1:能使用html/css解决的问题就不要使用JS
查看>>
网络攻防 实验一
查看>>
由莫名其妙的错误开始---浅谈jquery的dom节点创建
查看>>
磨刀-CodeWarrior11生成的Makefile解析
查看>>
String StringBuffer StringBuilder对比
查看>>
.NET与C#
查看>>