黑马程序员技术交流社区
标题:
这段代码错哪儿了?了解参数的进来
[打印本页]
作者:
许大虾
时间:
2013-5-21 15:31
标题:
这段代码错哪儿了?了解参数的进来
int a = 3;
2 Test(a);//调用者
3 //Console.WriteLine(a);
4 Add(30, 20,"aaa");
5 //如果一个方法一旦有参数,那么调用者就必须传参数,并且传参数的个数与对应位置上的类型必须一致
6 }
7 //被调用者
8 public static void Test(string a) //形参
9 {
10 a = a + 1;
11 Console.WriteLine(a);
12 }
13 //求两个整数的合
14 public static void Add(string a, string b,int name)
15 {
16 Console.WriteLine("a+b={0}", a + b);
17 }
18
复制代码
作者:
李君言
时间:
2013-5-21 15:45
本帖最后由 李君言 于 2013-5-21 15:48 编辑
public static void Test ( string a ) 这个方法接收的是string类型参数,
你传给它却是一个int类型
int a = 3;Test ( a ) ;
public static void Add(string a, string b,int name)这个对应接收的是string类型,string类型和int类型
传参数的时候就应该对应的string类型,string类型和int类型
例如Add("字符","字符",33);
作者:
parker
时间:
2013-5-21 15:48
楼上正解!
作者:
shenge321
时间:
2013-5-21 16:01
static void Main(string[] args)
{
int a = 3;
Test(a.ToString());//Test()方法传入的参数要求是string类型,不能直接写a,需要进行类型转换。
Add("30", "20", 22);//同上,方法里规定了传入参数的格式,前两个是string类型,后一个是int类型,故其跟的参数类型也应该是(string string int)
Console.ReadKey();
}
public static void Test(string a)//传入参数要求为string类型。如不符合,需在传入前进行数据类型转换操作。
{
a = a + 1;//字符串加字符串,如果要int型,需要先转换。
Console.WriteLine(a);//输出31
}
public static void Add(string a, string b, int name)//传入的三个参数要求分别是string类型、string类型和int类型。如不符合,需在传入前进行数据类型转换操作。
{
Console.WriteLine("a+B={0}", a + b);//因为a,b都为字符串,故a+b是字符串合并操作,输出3020。
}
复制代码
作者:
HM朱百青
时间:
2013-5-21 16:48
你的两个方法参数传递有问题,Test这个方法需要参数是string,不应该给int类型的;Add方法需要的是string,string,int很显然你给的也不对,你给的是int,int,string,所以错误!说明了int是不能隐式转换为string的!
作者:
曾大鹏
时间:
2013-5-21 16:52
参数对应的类型 要一致
作者:
chankamlam
时间:
2013-5-21 17:11
Add(30, 20,"aaa");
public static void Add(string a, string b,int name)
方法参数与调用不一致
作者:
秦二江
时间:
2013-5-21 19:14
{:soso_e133:}传递的参数的类型不对,参数类型 ,应和 函数的参数类型 一致
作者:
魏庆君
时间:
2013-5-22 13:49
这一题考虑到实参和形参的问题
在调用方法的时候,形参与实参的个数以及两种参数的类型都必须是一致的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2