dotNet面对对象——1,方法

0,小复习

完整的写法:

namespace:包。
class:类。
Main:主方法。

namespace a {
    
    
	class B {
    
    
		static void Main(string[] args) {
    
    
			Console.WriteLine("你好,世界!");
		}
	}
}

在这里插入图片描述

1,简单使用

public:外部可以访问。
static:不需要通过实例访问。

public static 返回类型 方法名 ( 参数列表 ){
    
    
	//xxx
}

举例:int作加法。

namespace a {
    
    
	class B {
    
    
		static void Main(string[] args) {
    
    
			int c = add(111, 333);
			Console.WriteLine(c);
		}
		static int add(int a, int b) {
    
    
			return a + b;
		}
	}
}

效果:

在这里插入图片描述

2,out参数

out参数是另一种返回值的方式。
out加在参数上,方法体必须要对该参数进行赋值。
out参数可以有多个。

namespace a {
    
    
	class B {
    
    
		static void Main(string[] args) {
    
    
			int c = 0;
			add(111, 333, out c);
			Console.WriteLine(c);
		}
		static void add(int a, int b, out int c) {
    
    
			c = a + b;
		}
	}
}

效果:

在这里插入图片描述

3,ref参数

默认情况下,参数是值传递:

namespace a {
    
    
	class B {
    
    
		static void Main(string[] args) {
    
    
			int a = 111;
			add(a);
			Console.WriteLine(a);
		}
		static void add(int a) {
    
    
			a++;
		}
	}
}

效果:没有变化。

在这里插入图片描述

ref修饰之后,会变成引用传递。

namespace a {
    
    
	class B {
    
    
		static void Main(string[] args) {
    
    
			int a = 111;
			add(ref a);
			Console.WriteLine(a);
		}
		static void add(ref int a) {
    
    
			a++;
		}
	}
}

效果:加一。

在这里插入图片描述
此外,当参数是引用类型的值时,默认也是引用传递:

namespace a {
    
    
	class B {
    
    
		static void Main(string[] args) {
    
    
			int[] a = {
    
     111 };
			add(a);
			Console.WriteLine(a[0]);
		}
		static void add(int[] a) {
    
    
			a[0]++;
		}
	}
}

效果:

在这里插入图片描述

4,params参数

可变参数,传入的时候会当作数组。
只能放在最后,只能出现一次。

namespace a {
    
    
	class B {
    
    
		static void Main(string[] args) {
    
    
			say(1, 2, 3, 4);
		}
		static void say(params int[] a) {
    
    
			for (int i = 0; i < a.Length; i++) {
    
    
				Console.WriteLine(a[i]);
			}
		}
	}
}

效果:

在这里插入图片描述

5,方法的重载

同名不同参。(参数个数,参数类型,参数位置)

下面这四个方法就是重载。

static int add(int a, int b) {
    
    
	return a + b;
}
static double add(double a, double b) {
    
    
	return a + b;
}
static double add(int a, double b) {
    
    
	return a + b;
}
static double add(double a, int b) {
    
    
	return a + b;
}

返回值类型不影响。

下面这个会报错。

static int add(int a, int b) {
    
    
	return a + b;
}
static double add(int a, int b) {
    
    
	return a + b;
}

猜你喜欢

转载自blog.csdn.net/qq_37284843/article/details/124550759