public static 返回值类型 方法名(参数)
{函数体
}
static(静态方法):关键字;不需要访问类的实例变量或实例方法
public class MyClass
{
public static void StaticMethod()
{
Console.WriteLine("这是静态方法!");
}
public void InstanceMethod()
{
Console.WriteLine("这是实例方法!");
}
}
// 调用静态方法
MyClass.StaticMethod();
// 调用实例方法
MyClass myClassInstance = new MyClass();
myClassInstance.InstanceMethod();```
实例方法:实例方法需要通过类的对象来调用,并且可以访问实例变量和其他实例方法。调用方式:需要先创建类的实例(例如 ClassName instance = new ClassName();),然后通过实例调用方法(例如 instance.MethodName())
调用:类名.函数名()相当于加了个中介
当函数与Main函数在同一个类中,类名可以省略
1.关于函数的定义:
(1)如果你没用主动使用访问修饰符,那么默认是private私有的,外界是访问不到的
2.关于函数的重载
(1)与返回值无关
(2)与参数列表的个数有关
(3)与参数列表的不同数据类型的顺序是有关的
3. 关于函数的参数传递
(1)值传递
如果对值的形参做数值处理,出了作用域后就失效了
(2)引用传递
对于非引用类型,可以采取ref/out关键字,来实现堆内存处理的效果,其实就是让形参与实参保持一致
ref:不需要对实参赋值,就可以使用
out:需要对实参赋值后,才可以使用
public void swap(ref int x,ref int y)
{
int t;
t = x;
x = y;
y = t;
}
void Start()
{
int a, b;
a = 5; b = 8;
swap(ref a,ref b);
Debug.Log("a=" + a);
Debug.Log("b=" + b);
}
Array.Sort();//对数组进行排序,默认为升序
int[] a = { 7,5,4,1,3,2,6};//Array.Sott(a)//输出:1,2,3,4,5,6,7;
Array.Sort(a,(x,y)=>y.CompareTo(x))//降序,输出:7,6,5,4,3,2,1;
Sort自定义
使用IComparer<类型>
定义一个实现了 IComparer<int>
接口的类,并通过该比较器来排序。
public class Com:IComparer<int>//<>填排序对象类型;//Com函数名
{
public int compare(int x,int y){
return Math.Abs(x).compareTo(Math.Abs(y));//根据绝对值排序;
}
}
Array.Sort(a,new Com());