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

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>
            国产女主播一区| 噜噜噜在线观看免费视频日韩| 久久精品国产成人| 久久激情视频| 久久久国产精品一区二区中文| 久久久精品日韩欧美| 久久精品日产第一区二区| 久久久视频精品| 欧美国产日韩精品免费观看| 欧美不卡在线视频| 亚洲激情欧美| 日韩视频精品在线| 午夜精彩国产免费不卡不顿大片| 久久久久**毛片大全| 欧美国产视频一区二区| 欧美体内she精视频| 国产精品影视天天线| 亚洲二区三区四区| 在线性视频日韩欧美| 久久成人免费日本黄色| 欧美激情精品久久久久久大尺度| 亚洲精品一区二区网址| 午夜天堂精品久久久久| 久久久福利视频| 欧美日韩在线观看一区二区| 1024成人| 欧美啪啪一区| 国产麻豆日韩| 亚洲精品免费在线播放| 亚洲一区免费网站| 欧美www视频| 亚洲特级毛片| 欧美国产视频一区二区| 国产欧美精品| 99国产一区| 毛片av中文字幕一区二区| av不卡免费看| 免费在线日韩av| 国产乱码精品一区二区三区五月婷 | 国产日韩欧美综合一区| 亚洲国产合集| 欧美在线综合视频| 亚洲精品一区久久久久久| 欧美一区二区视频在线观看2020| 欧美日韩在线电影| 日韩视频一区| 男女视频一区二区| 欧美一区二区高清| 国产精品乱码一区二三区小蝌蚪| 99精品视频免费在线观看| 欧美第一黄色网| 欧美在线免费观看亚洲| 国产精品久久7| 亚洲视频观看| 日韩亚洲视频| 欧美一区二区三区免费观看 | 精品69视频一区二区三区| 国产日本欧美一区二区| 一区二区三区日韩| 久久综合99re88久久爱| 亚洲愉拍自拍另类高清精品| 欧美日本一区二区高清播放视频| 黄色日韩网站视频| 亚洲欧美日韩精品久久久久| av成人毛片| 欧美另类人妖| 夜夜嗨一区二区三区| 亚洲国产成人久久综合一区| 欧美一区二区三区啪啪| 国产精品久久久久久久久动漫| 亚洲美女尤物影院| 亚洲精品日韩激情在线电影| 国产精品欧美日韩| 亚洲激情女人| 亚洲第一精品夜夜躁人人爽| 久久婷婷一区| 亚洲国产另类精品专区| 亚洲国产一区二区精品专区| 欧美成人午夜| 99热免费精品| 亚洲专区免费| 激情久久久久| 最新高清无码专区| 欧美视频一区二区三区| 销魂美女一区二区三区视频在线| 午夜精品视频| 亚洲国产精品成人精品| 亚洲精选一区| 国产欧美一区二区三区久久人妖| 久久女同精品一区二区| 另类av导航| 亚洲中字黄色| 久久精品在线免费观看| 日韩视频免费观看| 亚洲制服av| 亚洲第一中文字幕| 在线视频日韩| 1204国产成人精品视频| 亚洲毛片av| 国产专区综合网| 一个色综合av| 久久成人在线| 亚洲网站在线播放| 欧美永久精品| 亚洲午夜影视影院在线观看| 久久黄色影院| 亚洲一区二区三区在线视频| 久久精品主播| 亚洲一区二区网站| 老司机午夜精品视频| 亚洲欧美影音先锋| 欧美大片一区| 狼人天天伊人久久| 国产精品一区=区| 亚洲欧洲一区二区三区在线观看 | 国产精品成人播放| 蜜桃久久av一区| 国产精品日韩在线播放| 亚洲激情啪啪| 亚洲国产精品欧美一二99| 性欧美1819sex性高清| 一区二区三区视频在线播放| 玖玖玖国产精品| 久久久久久久欧美精品| 国产精品视频久久久| 亚洲免费观看| 亚洲免费观看在线视频| 免费在线亚洲| 免费亚洲一区| 一区二区三区在线视频播放| 午夜精品福利一区二区三区av| 国产精品99久久久久久久女警| 国产色爱av资源综合区| 欧美激情精品| 国产区日韩欧美| 在线一区亚洲| 亚洲一区二区三区久久| 国产亚洲午夜| 欧美视频一区二区| 亚洲另类在线一区| 亚洲精品免费一二三区| 女人色偷偷aa久久天堂| 欧美大片免费久久精品三p | 久久国产精品黑丝| 国产精品国产a| 夜夜嗨av一区二区三区中文字幕| 亚洲日本中文字幕区| 欧美成人午夜| 亚洲免费高清| 香蕉久久精品日日躁夜夜躁| 国产精品日韩二区| 性久久久久久久久| 久久久青草青青国产亚洲免观| 韩日成人在线| 久久看片网站| 亚洲黄色天堂| 亚洲一区二区免费| 国产美女精品免费电影| 欧美在线国产| 欧美高清视频一二三区| 一区二区不卡在线视频 午夜欧美不卡在 | 小黄鸭精品密入口导航| 久久裸体艺术| 亚洲国产高清自拍| 欧美日韩国语| 午夜精品久久久久久久久久久久| 久久蜜桃精品| 99国产精品久久久久久久成人热| 国产精品久久久久毛片软件 | 国产精品久久夜| 欧美在线999| 亚洲日本va午夜在线影院| 一区二区三区欧美视频| 国产精品嫩草99av在线| 久久精品亚洲精品国产欧美kt∨| 亚洲成人在线免费| 国产一区二区三区四区五区美女| 久久久精品国产一区二区三区| 亚洲二区在线观看| 亚洲欧美不卡| 亚洲高清视频的网址| 欧美一区二区三区在线观看视频 | 在线综合亚洲欧美在线视频| 久久精品视频va| 日韩一区二区精品在线观看| 国产乱子伦一区二区三区国色天香 | 亚洲黄色av一区| 国产精品欧美久久久久无广告| 免费在线视频一区| 欧美一区二区三区免费观看视频| 91久久在线播放| 另类欧美日韩国产在线| 亚洲女同在线| 一区二区激情小说| 亚洲电影免费在线| 国产欧美在线观看| 国产精品jvid在线观看蜜臀| 欧美福利一区二区| 久久久久久穴| 欧美一区二区三区在线观看 |