***构造函数的重载
重载:方法名相同,参数个数或参数的数据类型不同
例:
//自己定义一个构造函数
public MyMath(int a)
{
this.a = a;
b = 10;
}
---------------------------------------------------
五、params关键词、方法的参数和返回值的类型
***params关键词
params关键词声明,可以采用长度变化的参数。
params int[]能自动把传进来的值转换成一个数组。
例:public int Sum2(params int[] array)
{......}
***方法的参数和返回值的类型可以是任意类型
例:public List<int> List(int a, int b, int c)
{......}
---------------------------------------------------
六、值传递、引用传递(ref、out)
***值传递
传递参数的默认机制:值传递。
变量的值传到方法里面时,是复制了一个副本,在方法内部实际上是对副本进行的一个操作,所以对方法外部变量的值没有任何影响。
例:
public void Fun(int i)
{
i += 100;
}
int i = 10;
math3.Fun(i);
Console.WriteLine("值传递变量i本身的值不变,依然是{0}", i);//10
***引用传递
引用传递传的是变量的内存地址。
变量在方法内的改变会影响方法外的值。
例1:
public void Fun(ref int i)
{
i += 100;
}
math3.Fun(ref i);//ref引用传递,传参时要写上ref关键词
//ref声明的参数,传值之前必须赋初值
Console.WriteLine("ref声明引用传递,变量i本身的值变化为{0}", i);
例2:
public int Fun2(int a, int b, out int min)
{
min = a < b ? a : b;
return a + b;
}
int min;
//out输出参数,只输出不输入(不用传初值),传值时也要写上out关键词,也是引用传递
result = math3.Fun2(10, 20, out min);
Console.WriteLine("俩个数的较小值为:{0}",min);
一、属性
***属性语法
例:
string no;//字段成员的作用就是用来保存数据的
public string No//属性名首字母要大写
{
//get和set可以理解成方法,它们会在利用属性赋值和取值时自动调用
get { return no; }//数据存放在字段中,所以要return字段
set { no = value; }//value表示做赋值操作时传进来的值
}
***通过属性进行赋值和取值时,可以做些逻辑操作
例:
string address;
//取值时,如果地址长度大于10个字符,那么先截取前10个字符,拼接“...”,再取值
public string Address
{
get
{
if (address.Length > 10)
{
address=address.Substring(0, 10) + "...";