亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

第 2 章 C#語言基礎應用

標簽:
C#

实例1:判断年份是否是闰年

年份如果能被400整除就为闰年,或者指定年份可以整除4但不能整除100也为闰年。
实现过程:

判断方法:
 public class Methods
    {
        // if year can be divided by 400 
        // or can be divided by 4 and not by 100,
        // the year is leap year.
        public static bool IsLeapYear(string year)
        {            int iYear;            if (!int.TryParse(year, out iYear))
            {                return false;
            }            return (iYear % 400 == 0 || (iYear % 4 == 0 && iYear % 100 != 0)) ? true : false;
        }
    }
调用方法:
static void Main(string[] args)
        {            string year = "2008";            string yearTwo = "2009";
            Console.WriteLine("{0} is leap year: {1}", year, Methods.IsLeapYear(year));
            Console.WriteLine("{0} is leap year: {1}", yearTwo, Methods.IsLeapYear(yearTwo));

            Console.ReadLine();
        }
测试结果:

webp

实例2 使用checked关键字处理“溢出”错误

默认,unchecked.
使用checked关键字可能对程序的性能会有一点点影响,可以在代码的关键位置合理地使用checked关键字检查溢出,使用一点点的性能换来更加健康的程序,这样还是很好的。
如果不使用checked关键字,数值出现溢出时将不会出现任何异常信息,这时将会出现一件可怕的事情,程序中的数据已经不准确了,但是我们却没发现。
使用:

// how to use checked
            Stopwatch stopWatch = new Stopwatch();
            stopWatch.Start();            byte num = 0;            for (int i = 0; i < 500; i++)
            {
                num++;
            }
            stopWatch.Stop();
            TimeSpan ts = stopWatch.Elapsed;
            Console.WriteLine("Not use checked, num: {0}, time: {1}", num, ts);

            Stopwatch stopWatchTwo = new Stopwatch();
            stopWatchTwo.Start();            byte numTwo = 0;            try
            {                for (int i = 0; i < 500; i++)
                {
                    checked { num++; }
                }
            }            catch { num = 0; }
            stopWatchTwo.Stop();
            TimeSpan tsTwo = stopWatchTwo.Elapsed;
            Console.WriteLine("Use checked, num: {0}, time: {1}", numTwo, tsTwo);

测试结果:


webp

从测试结果来看的话,在没使用checked时,num做了500次加法,而由于溢出,狠明显,num由于类型的限制,它的值并没有一直往上加,而是停止在了244,用时也是非常小的。
当使用了checked,并没有做到500次的相加,然而时间却是万倍,可能是数据量较小的缘故,使用时间都不是很长,以至于差别较大。但是使用checked造成时间上的性能损失还是比较明显的。

实例3 使用is关键字检查对象是否与给定类型兼容,使用as关键字将对象转换为指定类型

as关键字与is关键字一样都不会抛出异常,使用as关键字对对象进行类型转换,如果转换成功将会返回转换后的对象,如果转换不成功则不会返回异常而是返回NULL。

实例3 递归算法

数列:1,1,2,3,5,8,13,21,34,55……
求第n位数的值。
这里新建一个winform project,输入位数,计算出该位数数值:


webp


实现代码:

 private void button1_Click(object sender, EventArgs e)
        {            int iNm;            if (int.TryParse(this.textBox1.Text, out iNm))
            {                this.textBox2.Text = Calculate(iNm).ToString();
            }            else
            {
                MessageBox.Show("请检查文本输入格式", "提示");
            }
        }        private int Calculate(int number)
        {            if (number <= 0)
            {                return 0;
            }            else if (number > 0 && number <= 2)
            {                return 1;
            }            else
            {                return Calculate(number - 1) + Calculate(number - 2);
            }
        }



作者:张中华
链接:https://www.jianshu.com/p/744ccaf050b1


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消