<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如果諸葛亮用C#寫出師表...

          共 12611字,需瀏覽 26分鐘

           ·

          2021-03-15 07:53


          ?

          看到一篇18年的文章 "C++版《出師表》",站長覺得挺有意思的,就用C# 控制臺也實現(xiàn)了一遍,技術(shù)上沒啥難度,但復(fù)制代碼費了1、2個小時,純粹無聊寫著玩,看者別在意枚舉、類名、變量中文命名,純粹為了娛樂。


          出師表背景(照抄原文)

          今天讓我們碼農(nóng)以特有的方式,來表達(dá)對丞相大人的敬仰與懷念!

          蜀章武元年(221年),劉備稱帝,諸葛亮為丞相。蜀漢建興元年(223年),劉備病死,將劉禪托付給諸葛亮。諸葛亮實行了一系列比較正確的政治和經(jīng)濟(jì)措施,使蜀漢境內(nèi)呈現(xiàn)興旺景象。為了實現(xiàn)全國統(tǒng)一,諸葛亮在平息南方叛亂之后,于建興五年(227年)決定北上伐魏,擬奪取魏的長安,臨行之前上書后主,即這篇《出師表》。

          C# 源碼

          定義的一些類、枚舉

          public enum 王道 { 明, 昏 };

          /// <summary>
          /// 先帝,陛下,文景,桓靈
          /// </summary>
          public class 君
          {
            public string 名稱;
            public bool 在;
            public 王道 為君;

            public 君()
            {
              在 = true;
              為君 = 王道.明;
            }
            public bool 創(chuàng)業(yè)(double percentage)
            {
              if (percentage < 0.5)
              {
                在 = false;
                Console.WriteLine($"{名稱}創(chuàng)業(yè)未半而中道崩殂!");
                return false;
              }
              else
              {
                Console.WriteLine(@"{名稱}興復(fù)漢室,還于舊都!");
                return true;
              }
            }

            public void 開張圣聽()
            {
              Console.WriteLine("開張圣聽,光先帝遺德!");
            }

            public void 恢弘志士之氣() { }

            public void 賓自菲薄() { }

            public void 引喻失義()
            {
              Console.WriteLine("塞忠諫之路!");
            }

            public void 親賢臣遠(yuǎn)小人()
            {
              為君 = 王道.明;
            }

            public void 親小人遠(yuǎn)賢臣()
            {
              為君 = 王道.昏;
            }

            public void 治國() { }

            public void 偏私()
            {
              Console.WriteLine("內(nèi)外異法!");
            }

            public bool 咨之(string 事)
            {
              if (王道.明 == 為君)
              {
                return true;
              }

              return false;
            }

            public bool 施行(string 事)
            {
              return true;
            }

            public void 曰(string 言)
            {
              Console.WriteLine(言);
            }

            public void 每與臣論此事()
            {
              Console.WriteLine("嘆息痛恨于桓靈。");
            }

            ~君() { }
          }


          public enum 臣德 { 賢, 奸 }

          public class 侍衛(wèi)之臣
          {
            private 君 劉備 = new 君();
            private 君 劉禪 = new 君();

            public string 名稱;
            public 臣德 為臣;

            public void 不懈于內(nèi)()
            {
              Console.WriteLine($"侍衛(wèi)之臣({名稱})不懈于內(nèi)");
            }

            public bool 追先帝之殊遇()
            {
              if (劉備.為君 == 王道.明)
              {
                return true;
              }
              else
              {
                return false;
              }
            }

            public bool 報之于陛下()
            {
              if (劉禪.為君 == 王道.明)
              {
                return true;
              }
              else
              {
                return false;
              }
            }

            public bool 謀事(string 事)
            {
              if (為臣 == 臣德.賢)
              {
                return true;
              }

              return false;
            }
          }

          class 忠志之士
          {
            private 君 劉備 = new 君();
            private 君 劉禪 = new 君();

            public string 名稱;
            public 臣德 為臣 = new();

            public void 忘身于外()
            {
              Console.WriteLine($"忠志之士({名稱})忘身于外!");
            }

            public bool 追先帝之殊遇()
            {
              if (劉備.為君 == 王道.明)
              {
                return true;
              }
              else
              {
                return false;
              }
            }

            public bool 報之于陛下()
            {
              if (劉禪.為君 == 王道.明)
              {
                return true;
              }
              else
              {
                return false;
              }
            }

            public bool 謀事(string 事)
            {
              if (為臣 == 臣德.賢)
              {
                return true;
              }

              return false;
            }
          }

          public enum 氣候 { 興盛, 疲弊, 興隆, 傾頹 }

          /// <summary>
          /// 曹魏,東吳,益州,先漢,后漢
          /// </summary>
          public class 國
          {
            public 氣候 國運;

            public 國()
            {
              國運 = 氣候.興盛;
            }

            public void 付諸有司論其刑賞(侍衛(wèi)之臣 臣)
            {
              if (臣.為臣 == 臣德.賢)
              {
                Console.WriteLine("賞!");
              }
              else
              {
                Console.WriteLine("刑!");
              }
            }

            ~國() { }
          }

          /// <summary>
          /// 郭攸之,費祎
          /// </summary>
          public class 侍中 : 侍衛(wèi)之臣 { };

          /// <summary>
          /// 董允
          /// </summary>
          public class 侍郎 : 侍衛(wèi)之臣 { }

          /// <summary>
          /// 陳震
          /// </summary>
          public class 尚書 : 侍衛(wèi)之臣 { }

          /// <summary>
          /// 張裔
          /// </summary>
          public class 長史 : 侍衛(wèi)之臣 { }

          /// <summary>
          /// 蔣琬
          /// </summary>
          public class 參季 : 侍衛(wèi)之臣 { }

          /// <summary>
          /// 向?qū)?/span>
          /// </summary>
          class 中都督 : 忠志之士 { }

          /// <summary>
          /// 諸葛亮
          /// </summary>
          class 丞相 : 侍衛(wèi)之臣
          {
            public void 回首往事()
            {
              Console.WriteLine("臣本布衣,躬耕于南陽,茍全性命于亂世,不求聞達(dá)于諸候。先帝不以臣卑鄙,猥自枉屈,三顧臣于草廬之中,咨臣以當(dāng)世之事,由是感激,遂許先帝以驅(qū)馳。后值巔覆,受任于敗軍之際,奉命于危難之間,爾來二十有一年矣。");
            }

            public void 表忠心()
            {
              Console.WriteLine("先帝知臣謹(jǐn)慎,故臨崩寄臣以大事也。受命以來,夙夜憂嘆,恐托付不效,以傷先帝之明。故五月渡瀘,深入不毛。");
            }

            public void 請戰(zhàn)()
            {
              Console.WriteLine("今南方已定,兵甲已足,當(dāng)獎率三軍,北定中原,庶竭駑鈍,攘除奸兇,興復(fù)漢室, 還于舊都。");
            }
            public void 道別()
            {
              Console.WriteLine("今當(dāng)遠(yuǎn)離, 臨表涕零, 不知所言。");
            }
          }

          Main方法

          static void Main(string[] args)
          {
            君 先帝 = new 君();
            先帝.名稱 = "先帝";
            先帝.創(chuàng)業(yè)(0.49);

            國 益州 = new 國();
            益州.國運 = 氣候.疲弊;

            Console.WriteLine("此誠危急存亡之秋也!");

            侍中 郭攸之 = new 侍中();
            郭攸之.名稱 = "郭攸之";
            if (郭攸之.追先帝之殊遇() && 郭攸之.報之于陛下())
            {
              郭攸之.不懈于內(nèi)();
            }

            侍中 費祎 = new 侍中();
            費祎.名稱 = "費祎";
            if (費祎.追先帝之殊遇() && 費祎.報之于陛下())
            {
              費祎.不懈于內(nèi)();
            }

            侍郎 董允 = new 侍郎();
            董允.名稱 = "董允";
            if (董允.追先帝之殊遇() && 董允.報之于陛下())
            {
              董允.不懈于內(nèi)();
            }

            中都督 向?qū)?nbsp;= new 中都督();
            向?qū)?名稱 = "向?qū)?;
            if (向?qū)?追先帝之殊遇() && 向?qū)?報之于陛下())
            {
              向?qū)?忘身于外();
            }

            君 陛下 = new 君();
            if (陛下.為君 == 王道.明)
            {
              陛下.開張圣聽();
              陛下.恢弘志士之氣();
            }
            else
            {
              陛下.賓自菲薄();
              陛下.引喻失義();
            }

            陛下.治國();

            bool 宮中 = false;
            bool 府中 = false;
            bool 陟臧 = false;
            bool 罰否 = false;
            Debug.Assert(宮中 == 府中);
            Debug.Assert(陟臧 == 罰否);

            侍衛(wèi)之臣 作奸犯科者 = new 侍衛(wèi)之臣();
            作奸犯科者.為臣 = 臣德.奸;
            侍衛(wèi)之臣 為忠善者 = new 侍衛(wèi)之臣();
            為忠善者.為臣 = 臣德.賢;
            if (陛下.為君 == 王道.明)
            {
              益州.付諸有司論其刑賞(作奸犯科者);
              益州.付諸有司論其刑賞(為忠善者);
            }
            else
            {
              陛下.偏私();
            }

            if (郭攸之.為臣 == 臣德.賢
              && 費祎.為臣 == 臣德.賢
              && 董允.為臣 == 臣德.賢)
            {
              Console.WriteLine("此皆良實,志慮忠純,是以先帝簡拔以遺陛下。");
            }

            string 宮中之事 = null;
            if (陛下.咨之(宮中之事)
              && 郭攸之.謀事(宮中之事)
              && 費祎.謀事(宮中之事)
              && 董允.謀事(宮中之事))
            {

              陛下.施行(宮中之事);
              Console.WriteLine("裨補闕病, 有所廣益");
            }

            if (向?qū)?為臣 == 臣德.賢)
            {
              Console.WriteLine("性行淑均,曉暢軍事。");
              Console.Write("先帝稱之曰:");
              先帝.曰("能");
              Console.WriteLine("是以眾議舉寵為督。");
            }

            string 營中之事 = null;
            if (陛下.咨之(營中之事))
            {
              陛下.施行(宮中之事);
              Console.WriteLine("行陣和睦,優(yōu)劣得所!");
            }

            君 文景 = new 君();
            君 恒靈 = new 君();
            國 先漢 = new 國();
            國 后漢 = new 國();

            文景.親賢臣遠(yuǎn)小人();
            先漢.國運 = 氣候.興隆;
            恒靈.親小人遠(yuǎn)賢臣();
            后漢.國運 = 氣候.傾頹;

            do
            {
              先帝.每與臣論此事();
            } while (先帝.在);

            if (郭攸之.為臣 == 臣德.賢
                    && 費祎.為臣 == 臣德.賢
                    && 董允.為臣 == 臣德.賢)
            {
              Console.WriteLine("此悉貞良死節(jié)之臣,愿陛下親之信之,則漢室之隆,可計日而待也。");
            }

            丞相 諸葛亮 = new 丞相();
            諸葛亮.回首往事();
            諸葛亮.表忠心();
            諸葛亮.請戰(zhàn)(); // 此臣所以報先帝而忠陛下之職分也
            諸葛亮.道別();

          }

          代碼輸出《出師表》

          出師表部分輸出
          先帝創(chuàng)業(yè)未半而中道崩殂!
          此誠危急存亡之秋也!
          侍衛(wèi)之臣(郭攸之)不懈于內(nèi)
          侍衛(wèi)之臣(費祎)不懈于內(nèi)
          侍衛(wèi)之臣(董允)不懈于內(nèi)
          忠志之士(向?qū)?忘身于外!
          開張圣聽,光先帝遺德!
          刑!
          賞!
          此皆良實,志慮忠純,是以先帝簡拔以遺陛下。
          裨補闕病, 有所廣益
          性行淑均,曉暢軍事。
          先帝稱之曰:能
          是以眾議舉寵為督。
          行陣和睦,優(yōu)劣得所!
          嘆息痛恨于桓靈。
          此悉貞良死節(jié)之臣,愿陛下親之信之,則漢室之隆,可計日而待也。
          臣本布衣,躬耕于南陽,茍全性命于亂世,不求聞達(dá)于諸候。先帝不以臣卑鄙,猥自枉屈,三顧臣于草廬之中,咨臣以當(dāng)世之事,由是感激,遂許先帝以驅(qū)馳。后值巔覆,受任于敗軍之際,奉命于危難之間,爾來二十有一年矣。
          先帝知臣謹(jǐn)慎,故臨崩寄臣以大事也。受命以來,夙夜憂嘆,恐托付不效,以傷先帝之明。故五月渡瀘,深入不毛。
          今南方已定,兵甲已足,當(dāng)獎率三軍,北定中原,庶竭駑鈍,攘除奸兇,興復(fù)漢室, 還于舊都。
          今當(dāng)遠(yuǎn)離, 臨表涕零, 不知所言。



          往期精彩回顧




          【推薦】.NET Core開發(fā)實戰(zhàn)視頻課程 ★★★

          .NET Core實戰(zhàn)項目之CMS 第一章 入門篇-開篇及總體規(guī)劃

          【.NET Core微服務(wù)實戰(zhàn)-統(tǒng)一身份認(rèn)證】開篇及目錄索引

          Redis基本使用及百億數(shù)據(jù)量中的使用技巧分享(附視頻地址及觀看指南)

          .NET Core中的一個接口多種實現(xiàn)的依賴注入與動態(tài)選擇看這篇就夠了

          10個小技巧助您寫出高性能的ASP.NET Core代碼

          用abp vNext快速開發(fā)Quartz.NET定時任務(wù)管理界面

          在ASP.NET Core中創(chuàng)建基于Quartz.NET托管服務(wù)輕松實現(xiàn)作業(yè)調(diào)度

          現(xiàn)身說法:實際業(yè)務(wù)出發(fā)分析百億數(shù)據(jù)量下的多表查詢優(yōu)化

          關(guān)于C#異步編程你應(yīng)該了解的幾點建議

          C#異步編程看這篇就夠了


          瀏覽 48
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产成人A片 | 黄色性爱免费视频 | 国产成人毛片 | 欧美激情三级 | 怕怕怕怕免费视频 |