zoukankan      html  css  js  c++  java
  • 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);
                }
  • 相关阅读:
    SQL事务
    C# 怎样读写EXCEL文件
    如何#读写EXCEL 文件 (http://space.cnblogs.com/question/7131/)
    C# 怎样读写EXCEL文件 (http://space.cnblogs.com/question/7131/)
    控制DataGirdView中單元格
    C#中ToString格式大全
    转贴:用SqlCommandBuilder 实现批量更新
    错题记录1
    Java—关于String的分析
    Java模拟双色球彩票
  • 原文地址:https://www.cnblogs.com/yshyee/p/4066980.html
Copyright © 2011-2022 走看看