一.方法:
1.调用的两种形式
class Student
{
public int age;
public int score;
public Student(int _age,int _score)
{
age = _age;
score = _score;
}
public int GetNum(int a,int b)
{
print();
return a+ b;
}
public static void Print()
{
Console.WriteLine("yes");
}
}
值得注意的是静态static是属于类的,所以一定要以类为前缀调用
非静态则要用实例调用
静态调用方法
Student.Print();
非静态调用方法
stu.GetNum(1,2);
直接调用
如果在同一个类里面非静态方法可以直接调用静态方法
注意:反过来就不行了,非静态是严格按照 实例.方法()实现(我自己的看法就是非静态方法之所以可以在类的定义里面直接调用是因为定义类的时候就是在类的层面,所以可以直接调用)
二.构造器
1.理解
类的一个方法
2.构造函数
如果没有定义构造函数,则调用系统默认的构造函数
但是如果已经定义了就必须用定义的构造函数否则编译出错
编写规则
注意:和c++不同的是c++可以分为两个部分,一个.h文件和一个.cpp文件用来分开定义和实现过程
而c#是直接在一起完成
class Complex
{
public Complex(int a,int b)//里面的参数可有可无,如果没有就是默认构造函数
{
}
}
三.方法的重载
和函数的返回值无关!!!
总结
函数的名称:包含了泛型程序设计中的(T)
public int Add<T>(int a,int b)
public int Add(int a,int b)
//编译通过
函数列表:
public int Add(int a,int b,int c)
public int Add(int a,int b)
//编译通过
函数类型:
public int Add(ref int a,int b)
public int Add(int a,int b)
public int Add(out int a,int b)
//编译通过
程序根据参数的类型选择相应的重载函数
四.方法栈的调用
层层推进
using System;
using System.Windows.Forms;
namespace hano
{
class Programe
{
void static Main(string[] args)
{
int x = A(100,200);
}
}
public static int A(int a,int b)
{
int x = B(a,b);
return x;
}
public static int B(int a,int b)
{
int x = C(a,b);
return x;
}
public static int C(int a,int b)
{
return a*b;
}
}
main
(
100的内存
200的内存
//函数里面的由编程语言决定
进程本身的内存
)
A
(
a的内存
b的内存
进程本身的内存
)
...以此类推