| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 769 人关注过本帖
标题:[求助]为什么已经初始化了变量,还显示CS0165错误?
只看楼主 加入收藏
FrozRivBear
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-12-11
收藏
 问题点数:0 回复次数:3 
[求助]为什么已经初始化了变量,还显示CS0165错误?
下面是我的程序,很简单,新手的:
using System;
public class lwbswap
{
int swap1=0;int swap2=0;//这里初始化,应该在lwbswap类内都能用吧?
public static void lwbswapout(out int swap1,out int swap2)
{
//swap1=0;swap2=0;
int temp=0;
temp=swap1;swap1=swap2;swap2=temp;
//上一行还是提示CS0165,说swap1和swap2没有初始化就使用。
}
public static void Main()
{
int i=23,j=45;
lwbswapout(out i,out j);
Console.WriteLine(i);
Console.WriteLine(j);
}
//很简单的程序,就是要用lwbswapout()方法把两个数调换一下
}

开始我怀疑C#不能在同一个类内用A方法调用B方法,但是稍微修改了一下代码,证明这样是可以的。
还是说一开始就定义了swap1和swap2,再在方法参数的地方定义就重复了?
当然把lwbswapout()方法定义在另一个类里是肯定可以的,我就纳闷这个程序错在哪里了?
请各位高人不吝指教!

再说一下,我的系统是XP+KB/Q.XXXX+.net1.1,用csc编译的

[此贴子已经被作者于2006-12-11 16:20:11编辑过]

搜索更多相关主题的帖子: 变量 
2006-12-11 16:11
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
[CODE]using System;
public class lwbswap
{
void lwbswapout(int swap1,int swap2)
{
int temp=0;
temp=swap1;swap1=swap2;swap2=temp;
}
public static void Main()
{
int i=23,j=45;
lwbswapout(i,j);
Console.WriteLine(i);
Console.WriteLine(j);
}
}[/CODE]

飘过~~
2006-12-11 17:35
FrozRivBear
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-12-11
收藏
得分:0 
bygg大哥啊,谢谢~~~~
但是你的代码我拷贝下来,不能运行啊!显示:
lwbswap.cs(12,9): error CS0120: An object reference is required for the
nonstatic field, method, or property 'lwbswap.lwbswapout(int, int)'
在lwbswapout()方法那里加一个static,通过了编译,但是输出23,45,也就是说这个程序没有达到预想的功能。因为lwbswapout()方法定义和使用的时候没有把参数定义为out,所以int类型按值传递,lwbswapout()方法修改的是i和j的副本,并没改变i和j的本身啊!
继续召唤达人~~~~~~
路漫漫而修远兮,吾将上下而求索

2006-12-11 19:32
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
[CODE]

class lwbswap
{
static int temp = 0;
static void Main(string[] args)
{
int i = 23, j = 45;
i = lwbswapout(i, j);
j = temp;
Console.WriteLine(i);
Console.WriteLine(j);
Console.Read();
}
static int lwbswapout(int swap1, int swap2)
{
temp = swap1;
return swap2;
}

[/CODE]

飘过~~
2006-12-11 20:38
快速回复:[求助]为什么已经初始化了变量,还显示CS0165错误?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018924 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved