C# 5.0入门经典配套源代码

自学的头三章还算顺利,基本上课后练习什么的靠自己就能搞定。第四章的课后练习突然冒出来让修改示例代码(p.77),搞得我一头雾水。猜测应该有配套光盘或者配套下载什么的,最终在封底找到一行小字:

读者可通过www.ptpress.com.cnhttp://vdisk.weibo.com/s/zp3n73NBke3A5下载本书的所有源代码。

第一个链接是人民邮电出版社的网址,在资源下载栏目根本找不到。第二个链接是新浪微盘。点了下载按钮却没有反应,似乎是赶上了这波网盘关闭对外分享的大潮,下载功能被停止了。在网上搜了半天也没搜到相同的文件,同名文件大都是原书的扫描PDF。最终还是下载成功了,考虑到未来可能还会有人购买这本书,在这里分享一下可以下载得到的位置。

  1. 这是我自己下载并转存到Evernote上的:
    C# 5.0入门经典
    ISBN 9787115344236
    http://www.evernote.com/l/AARAz55RmdFLr7cZTx-bux2dP27WTzaaTCI/
  2. 或者也可以到这本书的英文原版出版社官网下载,下载链接在页面下方的Downloads标签内,内容是一样的:
    Sams Teach Yourself C# 5.0 in 24 Hours
    http://www.informit.com/store/sams-teach-yourself-c-sharp-5.0-in-24-hours-9780672336843

 

C#学习笔记1:属性和方法

拖延了半年时间终于再度拾起之前的C#,埋头自学起来。
跟着中文版的Sams Teach Yourself C#5.0的教程 慢慢学下来,虽然没有书上说的24小时就能成功那样神速,倒也学得不亦乐乎。

书中第4章里的属性和方法小节有道题目(p.67),一开始无论如何不知道是如何实现(去年在MVA上自学的课程基本上算还给那个老外了)。还好有Google,在我耐着性子(其实快想掀桌了(╯-_-)╯╧╧)尝试各种搜索之后,居然找到了CSDN上有人跟我看同一本书,并把实现的方法写了出来。方法并不复杂,可见我的编程素养还近乎是零啊。

代码如下

Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Numerics;

namespace ConsoleHelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            Contact c = new Contact();
            Console.WriteLine(c.ToString());

            c.FirstName = "Jim";
            c.LastName = "Morrison";
            c.DateOfBirth = new DateTime(1943, 12, 8);
            Console.WriteLine(c.ToString());

            c.Search(37.479444f, -122.450278f);
            c.Search(37.479444f, -122.450278f, 50);
            c.Search(37.479444f, -122.450278f, 50, "en");

            Console.WriteLine(c.VerifyEmailAddress("joe@example.com"));
            Console.WriteLine(c.VerifyEmailAddress("jim@example.com"));
        }
    }
}

Contact.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleHelloWorld
{
    class Contact
    {
        private DateTime dateOfBirth;

        public DateTime DateOfBirth
        {
            get
            {
                return this.dateOfBirth;
            }
            set
            {
                this.dateOfBirth = value;
            }
        }
        public string FirstName  //自动实现的属性
        {
            get;
            set;
        }
        public string LastName
        {
            get;
            set;
        }
        public string FullName  //计算得到的属性
        {
            get
            {
                return FirstName + " " + LastName;
            }
        }

        public override string ToString()
        {
            StringBuilder stringBuilder = new StringBuilder();
            stringBuilder.AppendFormat("Name: {0}rn", FullName);  //使用计算得到的属性
            stringBuilder.AppendFormat("Date of Birth: {0}rn", this.dateOfBirth);
            return stringBuilder.ToString();
        }

        public bool VerifyEmailAddress(string emailAddress)
        {
            return emailAddress == "joe@example.com";
        }

        public void Search(float latitude, float longitude)
        {
            Search(latitude, longitude, 10, "en-US");
        }

        public void Search(float latitude, float longitude, int distance)
        {
            Search(latitude, longitude, distance, "en-US");
        }

        public void Search(float latitude, float longitude, int distance, string culture)
        {
            Console.WriteLine("latitude {0} longitude {1} distance {2} culture {3}", latitude, longitude, distance, culture);
        }
    }
}