青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 124,  comments - 29,  trackbacks - 0
     摘要:   1 private void MoveCmdToLast(TextBox txtCmdInput, String selCmd)//把所選中的命令移動(dòng)到最下一行然后顯示在文本框中  2        { &...  閱讀全文
posted @ 2008-09-04 10:35 天書 閱讀(4549) | 評(píng)論 (0)編輯 收藏
           String curRowText = "Hello!"
           FileStream fs = new FileStream("D:\\file.txt",FileMode.Append,FileAccess.Write);
            StreamWriter sw = new StreamWriter(fs);
            sw.Flush();
            sw.Write(curRowText);
            sw.Flush();
            sw.Close();


或者:
StreamWriter writer = null;
try
{
writer = new StreamWriter(strFileName, true);
writer.WriteLine(strCmdText);
}
catch (Exception ex)
{
//進(jìn)行異常處理
}
finally
{
if (writer != null) writetofile.Close();
}
return false;
posted @ 2008-09-03 18:17 天書 閱讀(823) | 評(píng)論 (0)編輯 收藏
        private void 導(dǎo)入模板ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Title = " 請(qǐng)選擇您要導(dǎo)入的模板文件:";
            ofd.Filter = "TextDocument(*.cmd)|*.cmd|TextDocument(*.txt)|*.txt";
            ofd.ShowDialog();
            System.IO.StreamReader sr = new System.IO.StreamReader( ofd.FileName ,System.Text.Encoding.Default);
            txtCmdInput.Text = sr.ReadToEnd();
        }
posted @ 2008-09-03 16:34 天書 閱讀(1354) | 評(píng)論 (1)編輯 收藏

 

 1 private void GetLine(TextBox txtCmdInput)//取控件里鼠標(biāo)所在行的命令發(fā)送后提到最前
 2        {
 3            //取光標(biāo)所在行的字符串包括末尾的換行回車符"\r\n"
 4            string strCmdText = txtCmdInput.Text;
 5            int curInx = txtCmdInput.SelectionStart;       //光標(biāo)所在位置索引
 6            string tmp = strCmdText.Substring(0, curInx);  //開始到光標(biāo)處的子串
 7            int start = tmp.LastIndexOf('\n');             //找光標(biāo)所在行的開頭索引start + 1
 8
 9            tmp = strCmdText.Substring(curInx);//當(dāng)前光標(biāo)所在位置到最后的子串
10            int end = tmp.IndexOf('\n'); //找該行的末尾索引包括"\r\n"
11            string curRowText = null;
12            if (end > 0)
13            {
14                curRowText = strCmdText.Substring(start + 1, curInx - start + end);
15            }

16            else
17            {
18                curRowText = strCmdText.Substring(start + 1);
19            }

20            //把光標(biāo)所在行的命令提到第一行的下一行
21            String strLeft = strCmdText.Remove(start + 1, curRowText.Length);
22
23            //處理剩下的字符串,注意把開頭結(jié)尾的"\r\n"找到刪掉
24            if (strLeft != "")
25            {
26                while (strLeft[strLeft.Length - 1== '\r' || strLeft[strLeft.Length - 1== '\n')
27                {
28                    strLeft = strLeft.Remove(strLeft.Length - 11);
29                }

30            }

31            if (strLeft != "")
32            {
33                while (strLeft[0== '\r')
34                {
35                    strLeft = strLeft.Remove(02);
36                }

37            }

38            //處理你取出的當(dāng)前行的字符串若有"\r\n"注意把它去掉
39            if (curRowText != "" && curRowText.Length > 0)
40            {
41                while (curRowText[curRowText.Length - 1== '\r' || curRowText[curRowText.Length - 1== '\n')
42                {
43                    curRowText = curRowText.Remove(curRowText.Length - 11);
44                }

45            }

46            String strNew = curRowText + "\r\n" + strLeft;
47            //最后前面留一行空格且把鼠標(biāo)定位到此
48            txtCmdInput.Text = "\r\n" + strNew;
49        }
  

接著引發(fā)textbox控件的KeyDown事件
        private void txtCmdInput_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                //發(fā)送光標(biāo)所在行指令,且把它提到頭一行
                GetLine(txtCmdInput);
                e.SuppressKeyPress = true;//回車事件已經(jīng)處理完不再響應(yīng)了
            }
        }
posted @ 2008-09-03 15:09 天書 閱讀(4962) | 評(píng)論 (3)編輯 收藏

        private void myNeTree_MouseDown(object sender, MouseEventArgs e)
        {
            MyTreeView mtreev = (MyTreeView)sender;
            if(e.Button == MouseButtons.Right)
            {
                if (this.myNeTree.SelectedNode != null && this.myNeTree.SelectedNode.Nodes.Count == 0)
                {
                    Point p = new Point(e.X,e.Y);
                    TreeNode tn = mtreev.GetNodeAt(p);//根據(jù)鼠標(biāo)右鍵點(diǎn)下的位置,得到該位置的節(jié)點(diǎn)
                    if(myNeTree.SelectedNode.Equals(tn))//看當(dāng)前鼠標(biāo)位置所在的節(jié)點(diǎn)是否為當(dāng)前控件樹中選中的節(jié)點(diǎn)
                    {
                        this.rightMenu.Show(mtreev, p.X, p.Y);
                    }
                   
                }
            }
        }

因?yàn)镸yTreeView 是動(dòng)態(tài)加載:
            private MyTreeView myNeTree;

            ControlContainerItem contNe = new ControlContainerItem("myNeTree", "網(wǎng)元");

            myNeTree = new BurEmluator.MyTreeView();
            myNeTree.Name = "myNeTree";
            myNeTree.Size = new System.Drawing.Size(95, 350);
            //contNe鼠標(biāo)右鍵監(jiān)聽事件
            myNeTree.MouseDown += new MouseEventHandler(myNeTree_MouseDown);

            contNe.Control = myNeTree;

            this.NeGroup1.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] { radiocont, contNe });

posted @ 2008-09-02 15:47 天書 閱讀(1351) | 評(píng)論 (0)編輯 收藏
C#事件支持發(fā)布者/訂閱者模式,發(fā)布者將事件通知給訂閱者,而訂閱者在事件發(fā)生時(shí)調(diào)用已經(jīng)注冊(cè)好的事件處理函數(shù)。
        public delegate void delUpdate();  //委托定義,相當(dāng)于一個(gè)函數(shù)簽名,函數(shù)指針
        public event delUpdate ENotify;    //定義事件,該事件引發(fā)此委托類型的事件處理函數(shù)
        
        private int a = 2;
        public int A
        {
            get { return a; }
            set
            {
                a = value;
                if (ENotify != null)  //如果事件不等于空就是說有訂閱者注冊(cè)過該事件,比如:Publisher.getInstance().ENotify +=new Publisher.delUpdate(GetData);也就是說觸發(fā)事件后有相應(yīng)的事件處理函數(shù)被調(diào)用。
                {
                    ENotify();
                }

            }
        }

       public Observer()
        {
            Publisher.getInstance().ENotify +=new Publisher.delUpdate(GetData);
        }

        public void GetData()
        {
            oa = Publisher.getInstance().A;
            ob = Publisher.getInstance().B;
            oc = Publisher.getInstance().C;
        }

posted @ 2008-06-30 11:07 天書 閱讀(1515) | 評(píng)論 (0)編輯 收藏
首先可以在解決方案資源管理器中添加->新建項(xiàng)目->配置文件(.config),
寫配置文件,如:
1<?xml version="1.0" encoding="utf-8" ?>
2<configuration>
3  <appSettings>
4    <add key ="FactoryName" value="ChineseFactory"/>
5  </appSettings>
6</configuration>

讀配置文件
private string FactoryType = null;
        System.Configuration.AppSettingsReader asr 
= new System.Configuration.AppSettingsReader();
1FactoryType = (string)asr.GetValue("FactoryName"typeof(string));
注意語句要寫在函數(shù)里別直接寫在類里面了?。。。。。。。。。。。。。。。?!
posted @ 2008-06-24 11:08 天書 閱讀(630) | 評(píng)論 (0)編輯 收藏
Abstract Factory 模式:關(guān)鍵特征
意圖:為特定(不同)的客戶提供特定(不同)系列的對(duì)象。
             比如Vista風(fēng)格的桌面,Window標(biāo)準(zhǔn)的桌面(其中包括圖標(biāo)的樣式,菜單欄,任務(wù)欄等)
問題:一系列相關(guān)或相互依賴的對(duì)象需要被實(shí)例化

解決方案:
             先定義一個(gè)抽象工廠類來選擇工廠類(可以根據(jù)配置文件選取)
 1    class AbstractFactory
 2    {
 3        private string FactoryType = null;
 4        System.Configuration.AppSettingsReader asr = new System.Configuration.AppSettingsReader();
 5        public IFactory GetFactory()
 6        {
 7            FactoryType = (string)asr.GetValue("FactoryName"typeof(string));
 8            switch(FactoryType)
 9            {
10                case "ChineseFactory":
11                    return new ChineseFactory();
12                    break;
13                case "AmericanFactory":
14                    return new AmericanFactory();
15                    break;
16                default:
17                    return new ChineseFactory();
18            }

19            
20        }

21    }

          各個(gè)工廠類里創(chuàng)建不同系列的對(duì)象(同一工廠類里的對(duì)象風(fēng)格相同),但他們有一個(gè)共同的接口或父類
 1    interface IFactory
 2    {
 3        Service CreateService();
 4    }

 5
 6    class ChineseFactory : IFactory
 7    {
 8
 9        IFactory 成員
17    }

18    class AmericanFactory : IFactory
19    {
20        IFactory 成員
28    }
 最后在客戶端Service se = (new AbstractFactory()).GetFactory().CreateService();,提供一種“封裝機(jī)制”來避免客戶程序和這種“多系列具體對(duì)象創(chuàng)建工作”的緊耦合。每次在中國和美國的工資體制上切換時(shí)可以通過更改配置文件來切換。這樣就避免了源代碼保密的情況下無法更改業(yè)務(wù)規(guī)則的弊端。

配置文件如下
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  
<appSettings>
    
<add key ="FactoryName" value="ChineseFactory"/>
  
</appSettings>
</configuration>


posted @ 2008-06-24 11:00 天書 閱讀(840) | 評(píng)論 (0)編輯 收藏

 

       Strategy策略模式是一種對(duì)象行為模式。主要是應(yīng)對(duì):在軟件構(gòu)建過程中,某些對(duì)象使用的算法可能多種多樣,經(jīng)常發(fā)生變化。如果在對(duì)象內(nèi)部實(shí)現(xiàn)這些算法,將會(huì)使對(duì)象變得異常復(fù)雜,甚至?xí)斐尚阅苌系呢?fù)擔(dān)。

       GoF設(shè)計(jì)模式》中說道:定義一系列算法,把它們一個(gè)個(gè)封裝起來,并且使它們可以相互替換。該模式使得算法可獨(dú)立于它們的客戶變化。

       Strategy模式的結(jié)構(gòu)圖如下:


 

 

 


      
從圖中我們不難看出:Strategy模式實(shí)際上就是將算法一一封裝起來,如圖上的ConcreteStrategyA、ConcreteStrategyB、ConcreteStrategyC,但是它們都繼承于一個(gè)接口,這樣在Context調(diào)用時(shí)就可以以多態(tài)的方式來實(shí)現(xiàn)對(duì)于不用算法的調(diào)用。

       Strategy模式的實(shí)現(xiàn)如下:

       我們現(xiàn)在來看一個(gè)場(chǎng)景:我在下班在回家的路上,可以有這幾種選擇,走路、騎車、坐車。首先,我們需要把算法抽象出來:

       public interface IStrategy

    {

        void OnTheWay();

}

接下來,我們需要實(shí)現(xiàn)走路、騎車和坐車幾種方式。

public class WalkStrategy : IStrategy

    {

        public void OnTheWay()

        {

            Console.WriteLine("Walk on the road");

        }

    }

 

    public class RideBickStragtegy : IStrategy

    {

        public void OnTheWay()

        {

            Console.WriteLine("Ride the bicycle on the road");

        }

    }

 

    public class CarStragtegy : IStrategy

    {

        public void OnTheWay()

        {

            Console.WriteLine("Drive the car on the road");

        }

}

 

最后再用客戶端代碼調(diào)用封裝的算法接口,實(shí)現(xiàn)一個(gè)走路回家的場(chǎng)景:

class Program

    {

        static void Main(string[] args)

        {

            Console.WriteLine("Arrive to home");

            IStrategy strategy = new WalkStrategy();

            strategy.OnTheWay();

            Console.Read();

        }

}

運(yùn)行結(jié)果如下;

Arrive to home

Walk on the road

如果我們需要實(shí)現(xiàn)其他的方法,只需要在Context改變一下IStrategy所示例化的對(duì)象就可以。

posted @ 2008-06-18 09:38 天書 閱讀(179) | 評(píng)論 (0)編輯 收藏
基于對(duì)象可以這樣說主要看重封裝這個(gè)特性的, 即把數(shù)據(jù)和操作數(shù)據(jù)的行為封裝;
向?qū)ο?/font>主要是在對(duì)象封裝之上更加重視“多態(tài)性”特性。
僅列出標(biāo)題
共13頁: First 5 6 7 8 9 10 11 12 13 

<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用鏈接

留言簿(5)

隨筆檔案

文章分類

文章檔案

好友的Bolg

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲社区在线观看| 亚洲电影免费在线观看| 亚洲欧美一区二区三区在线| 夜夜精品视频| 国产精品一二三四区| 欧美一区二区国产| 久久国产精品99久久久久久老狼| 国产日韩久久| 免费不卡在线观看| 欧美激情视频一区二区三区免费| 亚洲精品国产精品国自产在线| 91久久精品国产91性色| 欧美成人免费视频| 亚洲小视频在线| 欧美在线视频免费| 亚洲精品中文字幕有码专区| 99亚洲精品| 黄色成人av| 99国产精品国产精品毛片| 国产欧美日韩综合| 欧美激情精品久久久久久蜜臀| 欧美日本精品一区二区三区| 欧美一区三区三区高中清蜜桃| 久久久久久久97| 亚洲性视频网站| 久久久久免费| 亚洲永久在线观看| 久久综合久久综合久久综合| 午夜精品999| 欧美va亚洲va香蕉在线| 欧美一区二区三区免费视频| 久久精品国产77777蜜臀| 一区二区三区免费在线观看| 欧美中文字幕精品| 一区二区欧美日韩视频| 久久久久国产精品一区二区| 亚洲一区黄色| 中日韩午夜理伦电影免费| 国产视频久久久久久久| 亚洲欧美三级伦理| 欧美电影资源| 欧美午夜大胆人体| 欧美电影电视剧在线观看| 国产精品hd| 亚洲国产精品va在线看黑人 | 午夜视频精品| 欧美精品手机在线| 欧美国产1区2区| 国产一区二区三区精品久久久| 99精品视频免费全部在线| 亚洲丰满在线| 欧美在线三区| 久久噜噜噜精品国产亚洲综合| 国产精品久久久久aaaa樱花| 亚洲人午夜精品| 亚洲免费精彩视频| 猫咪成人在线观看| 免费国产一区二区| 韩日精品在线| 久久精品视频播放| 久久久夜夜夜| 极品尤物久久久av免费看| 欧美一级电影久久| 久久精品主播| 好看的av在线不卡观看| 久久精品九九| 男人天堂欧美日韩| 亚洲激情专区| 欧美精品1区2区3区| 亚洲精品免费一二三区| 99国产精品99久久久久久| 欧美激情91| 亚洲最黄网站| 欧美一区二区三区免费看| 国产亚洲网站| 老色批av在线精品| 亚洲激情视频在线观看| 日韩一二三在线视频播| 欧美三区免费完整视频在线观看| 91久久精品国产| 亚洲欧美日韩视频二区| 国产亚洲精品美女| 麻豆久久久9性大片| 亚洲国产精品va在看黑人| 9l国产精品久久久久麻豆| 国产精品久久久爽爽爽麻豆色哟哟| 一区二区三区日韩在线观看| 欧美一区二区三区精品| 激情一区二区三区| 欧美11—12娇小xxxx| 999在线观看精品免费不卡网站| 亚洲免费视频中文字幕| 永久免费毛片在线播放不卡| 欧美精品免费看| 亚洲欧美亚洲| 亚洲国产一区二区三区高清| 亚洲综合第一| 亚洲国产1区| 欧美三级午夜理伦三级中视频| 欧美影院视频| 亚洲精品一区二| 久久亚洲精品一区| 一区二区成人精品| 含羞草久久爱69一区| 欧美日韩一区国产| 久久蜜桃精品| 亚洲免费视频成人| 亚洲国产成人精品女人久久久 | 国产精品国产三级国产aⅴ浪潮| 欧美制服丝袜第一页| 亚洲日本在线视频观看| 久久久www| 亚洲一区久久久| 亚洲精品一区二区网址| 国产色视频一区| 欧美日韩无遮挡| 免费日韩成人| 久久精品国产77777蜜臀 | 欧美激情无毛| 久久精品国产99精品国产亚洲性色| 亚洲卡通欧美制服中文| 狠狠色狠狠色综合日日tαg| 国产精品二区二区三区| 欧美国产日本韩| 亚洲精品无人区| 精品电影在线观看| 国产伦理精品不卡| 国产精品黄色| 欧美日韩一区二区精品| 欧美福利在线观看| 暖暖成人免费视频| 久色成人在线| 免费观看国产成人| 久久综合色影院| 久久漫画官网| 久久久夜精品| 久久免费国产| 久久另类ts人妖一区二区| 欧美在线关看| 久久精品国产第一区二区三区最新章节| 亚洲一区二区久久| 中文网丁香综合网| 亚洲午夜一级| 亚洲欧美日韩中文播放| 午夜伦欧美伦电影理论片| 午夜欧美精品| 性欧美激情精品| 欧美在线综合视频| 久久这里有精品视频| 蜜臀av国产精品久久久久| 免费观看成人www动漫视频| 女生裸体视频一区二区三区| 欧美暴力喷水在线| 欧美日韩不卡视频| 国产精品v欧美精品v日韩| 国产精品白丝av嫩草影院| 国产精品日日摸夜夜摸av| 国产一区欧美日韩| 在线欧美亚洲| 中文网丁香综合网| 欧美亚洲综合久久| 免费欧美网站| 亚洲蜜桃精久久久久久久| 亚洲视频在线观看免费| 欧美一级精品大片| 麻豆久久久9性大片| 欧美日韩一区二区视频在线| 国产精品自在欧美一区| 国内精品久久久久影院优| 亚洲人成人99网站| 亚洲一区二区三区涩| 久久婷婷国产麻豆91天堂| 亚洲福利在线看| 亚洲女女做受ⅹxx高潮| 久久频这里精品99香蕉| 欧美日韩专区| 亚洲福利在线看| 亚洲欧美中文日韩v在线观看| 葵司免费一区二区三区四区五区| 亚洲国产精品一区二区www在线| 亚洲电影中文字幕| 在线一区二区三区做爰视频网站 | 亚洲精品五月天| 欧美在线日韩| 日韩视频免费在线| 久久精品视频亚洲| 国产精品三级久久久久久电影| 在线电影院国产精品| 亚洲欧洲av一区二区三区久久| 欧美a级一区| 亚洲欧美日韩国产成人| 欧美日韩成人一区二区| 一区一区视频| 久久精品亚洲一区二区| 亚洲免费福利视频| 蜜桃久久av| 在线观看福利一区| 久久久国产精品一区| 亚洲小少妇裸体bbw| 欧美久久久久久久久|