double ADD(double a, double b)
{
return a + b;
}
int main()
{
double a = 3.0;
double b = 5.0;
double result = ADD(a, b);
printf(" % f + % f = % f", a, b, result);
return 0;
}
### (2)永远都是类(或结构体)的成员
- C#语言中不可能独立于类(或结构体)之外
- 只有作为类(或结构体)的成员时才被称为方法
- C++中是可以的,称为全局函数
### (3)是类(或结构体)最基本的成员之一
- 最基本的成员只有两个—— 字段与方法(成员变量与成员方法),本质还是数据+算法
- 方法表示类(或结构体)“能做什么事情”
### (4)为什么需要方法和函数
- 目的一:隐藏复杂的逻辑
- 目的二:把大算法分解为小算法
- 目的三:复用(reuse,重用)
- 示例:计算圆面积,圆柱体积,圆锥体积
```c#
class Calculator
{
public double GetCircleArea(double r)
{
return 3.14 * r * r;
}
public double GetCylinderVolume(double r, double h)
{
return 3.14 * r * r * h;
}
public double GetConeVolume(double r, double h)
{
return 3.14 * r * r * h / 3;
}
}
复用后,若想改变3.14就不用一个一个地去在程序中修改
```c#
class Calculator
{
public double GetCircleArea(double r)
{
return 3.14 r r;
}
public double GetCylinderVolume(double r, double h)
{
return GetCircleArea(r)*h;
}
public double GetConeVolume(double r, double h)
{
return GetCylinderVolume(r,h)/ 3;
}
}
## 2、方法的声明和调用
### (1)、声明方法的语法详解
- 参见c#语言文档(声明/定义不分家)
- Paramete全称为“formal parameter”
形式上的参数,简称“形参”
- Parameter是一种变量
### (2)、方法的命名规范
- 大小写规范(pascal法)
- 需要以动词或动词短语作为名字
### (3)、重温静态方法和实例方法
### (4)、调用方法
- Argument中文c#文档的官方译法为实际参数,简称“实参”
可理解为调用方法时的真实条件
- 调用方法时的Argument列表要与定义方法时的Parameter列表相匹配
- c#是强类型语言,argument是值,parameter是变量,值与变量一定要匹配,不然编译器会报错
## 3、构造器
- 构造器(constructor)是类型的成员之一
- 狭义的构造器指的是“实例构造器”(instance constructor)
- 如何调用构造器
- 声明构造器
- ctor+双击tab=构造器
- 构造器的内存原理
```c#
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
Student stu = new Student(2,"Mr Okay");
Console.WriteLine(stu.ID);
Console.WriteLine(stu.Name);
Console.WriteLine("==============");
Student stu2 = new Student();
Console.WriteLine(stu2.ID);
Console.WriteLine(stu2.Name);
}
}
class Student
{
public int ID;
public string Name;
public Student(int initId,string initName)
{
this.ID = initId;
this.Name = initName;
}
public Student()
{
this.ID = 1;
this.Name = "No Name";
}
}
}
上述程序中“Mr Okay”会产生双转存,因为string(字符串)为引用类型
## 5、如何对方法进行debug
原文:https://blog.51cto.com/u_15296868/3157501