C#笔记

1:对象初始化操作

C#3.0中引入了新的对象初始化方法,之前的方式:

User user = new User();
user.name = "test";
user.age = 10;

现在的方式:

User user = new User(){name="test",age=10};

变得更简洁,可读性更好。

2:获取随机数

多次获取时要保证Random只实例化一次,否则获取到的随机数会相同。

 static long tick = DateTime.Now.Ticks;
        Random ran = new Random((int)(tick & 0xffffffffL) | (int)(tick >> 32));
        private int getRandom()
        {
            return ran.Next(1,10);
        }

 3:属性(Private)的封装

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            User user = new User();
            user.Name = "testname";
            Console.WriteLine(user.Name);
        }
    }

    class User
    {
        private String name;

        public String Name
        {
            get
            {
                return name;
            }
            set
            {
                name = value +",hahaha!";
            }
        }
    }
}

 4:继承中的方法覆盖

在子类中使用override关键字 向子类中增加一个方法,可以替换掉它继承的父类中的方法。

覆盖一个方法之前,需要在基类中将这个方法声明为virtual。子类中可以使用base访问基类中方法。

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Teacher teacher = new Teacher();
            Student student = new Student();

            teacher.name = "ZhangSan";
            teacher.age = 26;
            teacher.PintfInfo();
            teacher.SayHello();

            student.name = "LiSi";
            student.age = 21;
            student.PintfInfo();
            student.SayHello();
        }
    }


    class Person
    {
        public String name;
        public int age;

        //使用virtual关键字,声明允许子类覆盖
        public virtual void SayHello()
        {
            Console.WriteLine("Person.SayHello()");
        }
    }

    class Student : Person
    {
        public void PintfInfo()
        {
            Console.WriteLine("Name:"+name+",Age:"+age);
            //子类中可以使用base访问基类中方法
            base.SayHello();
        }

        //子类中使用override关键字,声明覆盖父类中的方法
        public override void SayHello()
        {
            Console.WriteLine(name+" SayHello()");
        }
    }

    class Teacher : Person
    {
        public void PintfInfo()
        {
            Console.WriteLine("Name:" + name + ",Age:" + age);
        }
    }
}

 5:List

List<T> list = new List<T>();

要让List的内置Sort()方法能够处理某个类,只需让这个类实现IComparable接口,并增加一个CompareTo方法。

通过IComparable接口告诉List如何进行排序。 CompareTo方法返回1,0,-1。

6:键值对Dictionary

 static void DictionaryTest()
        {
            Dictionary<string, string> dic = new Dictionary<string, string>();
            dic.Add("zs", "zhangsan");
            dic.Add("ls", "lisi");

            Console.WriteLine(dic["zs"]);
        }
foreach (string value in dic.Values)
            {
                Console.WriteLine(value);
            }

            foreach(string key in dic.Keys)
            {
                Console.WriteLine(key);
            }
原文地址:https://www.cnblogs.com/yshyee/p/4066980.html