Csharp-02

方法

  • 方法的声明

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    // 无返回值无参数
    void Method1()
    {
    Console.WriteLine("Method1");
    }
    // 无返回值有参数
    void Method2(int a)
    {
    Console.WriteLine(a);
    }
    // 有返回值无参数
    int Method3()
    {
    return 1;
    }
    // 有返回值有参数
    int Method4(int a)
    {
    return a;
    }
  • 方法的调用

    1
    2
    3
    4
    5
    6
    7
    8
    // 无返回值无参数
    Method1();
    // 无返回值有参数
    Method2(1);
    // 有返回值无参数
    int a = Method3();
    // 有返回值有参数
    int b = Method4(1);
  • 方法的重载

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    // 无返回值无参数
    void Method1()
    {
    Console.WriteLine("Method1");
    }
    // 无返回值有参数
    void Method1(int a)
    {
    Console.WriteLine(a);
    }
    // 有返回值无参数
    int Method1()
    {
    return 1;
    }
    // 有返回值有参数
    int Method1(int a)
    {
    return a;
    }
  • 方法的参数

    • 值参数

      1
      2
      3
      4
      void Method1(int a)
      {
      Console.WriteLine(a);
      }
    • 引用参数

      1
      2
      3
      4
      void Method1(ref int a)
      {
      Console.WriteLine(a);
      }
    • 输出参数

      1
      2
      3
      4
      5
      void Method1(out int a)
      {
      a = 1;
      Console.WriteLine(a);
      }
    • 可选参数

      1
      2
      3
      4
      void Method1(int a = 1)
      {
      Console.WriteLine(a);
      }
    • 参数数组

      1
      2
      3
      4
      5
      6
      7
      void Method1(params int[] a)
      {
      foreach (int i in a)
      {
      Console.WriteLine(i);
      }
      }
  • 方法的修饰符

    • public:公开的
    • private:私有的
    • internal:内部的
    • protected:受保护的
    • static:静态的
    • virtual:虚方法
    • override:重写方法
    • abstract:抽象方法
    • sealed:密封方法
    • extern:外部方法

  • 类的声明

    1
    2
    3
    4
    5
    6
    7
    8
    9
    class Person
    {
    public string name;
    public int age;
    public void Say()
    {
    Console.WriteLine("name: " + name + ", age: " + age);
    }
    }
  • 类的实例化

    1
    2
    3
    4
    Person p = new Person();
    p.name = "张三";
    p.age = 18;
    p.Say();
  • 类的访问修饰符

    • public:公开的
    • private:私有的
    • internal:内部的
    • protected:受保护的
  • 类的成员修饰符

    • static:静态的
    • virtual:虚方法
    • override:重写方法
    • abstract:抽象方法
    • sealed:密封方法
    • extern:外部方法
  • 类的构造函数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    class Person
    {
    public string name;
    public int age;
    public Person()
    {
    Console.WriteLine("Person");
    }
    public Person(string name)
    {
    this.name = name;
    Console.WriteLine("Person: " + name);
    }
    public Person(string name, int age)
    {
    this.name = name;
    this.age = age;
    Console.WriteLine("Person: " + name + ", " + age);
    }
    public void Say()
    {
    Console.WriteLine("name: " + name + ", age: " + age);
    }
    }
  • 类的析构函数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    class Person
    {
    public string name;
    public int age;
    public Person()
    {
    Console.WriteLine("Person");
    }
    public Person(string name)
    {
    this.name = name;
    Console.WriteLine("Person: " + name);
    }
    public Person(string name, int age)
    {
    this.name = name;
    this.age = age;
    Console.WriteLine("Person: " + name + ", " + age);
    }
    public void Say()
    {
    Console.WriteLine("name: " + name + ", age: " + age);
    }
    ~Person()
    {
    Console.WriteLine("析构 Person");
    }
    }

结构体

  • 结构体的声明

    1
    2
    3
    4
    5
    6
    7
    8
    9
    struct Person
    {
    public string name;
    public int age;
    public void Say()
    {
    Console.WriteLine("name: " + name + ", age: " + age);
    }
    }
  • 结构体的实例化

    1
    2
    3
    4
    Person p = new Person();
    p.name = "张三";
    p.age = 18;
    p.Say();
  • 结构体的访问修饰符

    • public:公开的
    • private:私有的
    • internal:内部的
    • protected:受保护的
  • 结构体的成员修饰符

    • static:静态的
    • virtual:虚方法
    • override:重写方法
    • abstract:抽象方法
    • sealed:密封方法
    • extern:外部方法
  • 结构体的构造函数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    struct Person
    {
    public string name;
    public int age;
    public Person(string name)
    {
    this.name = name;
    Console.WriteLine("Person: " + name);
    }
    public Person(string name, int age)
    {
    this.name = name;
    this.age = age;
    Console.WriteLine("Person: " + name + ", " + age);
    }
    public void Say()
    {
    Console.WriteLine("name: " + name + ", age: " + age);
    }
    }
  • 结构体的析构函数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    struct Person
    {
    public string name;
    public int age;
    public Person(string name)
    {
    this.name = name;
    Console.WriteLine("Person: " + name);
    }
    public Person(string name, int age)
    {
    this.name = name;
    this.age = age;
    Console.WriteLine("Person: " + name + ", " + age);
    }
    public void Say()
    {
    Console.WriteLine("name: " + name + ", age: " + age);
    }
    ~Person()
    {
    Console.WriteLine("析构 Person");
    }
    }