推荐好书:《CLR via C#》 《C# IN DEPTH》(中文名 《深入理解C#》)

学习完课程后,一定要把这两本书好好读读,完成从初级到高级的转变。

方法的由来

  • 方法(method)的前身是 C/C++ 语言的函数(function)
    • 方法是面向对象范畴的概念,在非面向对象语言中仍然称为函数
    • 使用 C/C++ 语言做对比
  • 方法永远都是类(或结构体)的成员
    • C# 语言中函数不可能独立于类(或结构体)之外
    • 只有作为类(或结构体)的成员时才被称为方法
    • C++ 中函数可以独立于类之外,称为“全局函数”
  • 方法是类(或结构体)最基本的成员之一
    • 最基本的成员只有两个 —— 字段与方法(成员变量与成员方法),本质还是数据 + 算法
    • 方法表示类(或结构体)“能做什么事情”
  • 为什么需要方法和函数
    • 目的 1:隐藏复杂的逻辑
    • 目的 2:复用(reuse,重用)
    • 示例:计算圆面积、圆柱体积、圆锥体积

VS2017 装上 SDK,就可以直接写 C 和 C++。

C++ 函数示例:

  1. #include <iostream>
  2. double Add(double a, double b)
  3. {
  4. return a + b;
  5. }
  6. int main()
  7. {
  8. double x = 3.0;
  9. double y = 5.0;
  10. double result = Add(x, y);
  11. std::cout << x << "+" << y << "=" << result;
  12. return 0;
  13. }

当一个函数以类的成员的身份出现时,它就被称为方法。方法有一个别名叫“成员函数”。
C++ 里面完成了函数向方法的过渡。

C++ 添加类

p6 方法的定义、调用与调试 - 图1
Student.h:

  1. #pragma once
  2. class Student
  3. {
  4. public:
  5. Student();
  6. ~Student();
  7. void SayHello();
  8. };

Student.cpp:

  1. #include "Student.h"
  2. #include <iostream>
  3. Student::Student()
  4. {
  5. }
  6. Student::~Student()
  7. {
  8. }
  9. void Student::SayHello()
  10. {
  11. std::cout << "Hello! I'm a student!";
  12. }

Source.cpp:

  1. #include <iostream>
  2. #include "Student.h"
  3. int main()
  4. {
  5. Student *pStu = new Student();
  6. pStu->SayHello();
  7. return 0;
  8. }

方法永远都是类(或结构体)的成员

p6 方法的定义、调用与调试 - 图2