标题:小问关于this的问题?
只看楼主
water123456
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:3208
专家分:5
注 册:2006-2-21
 问题点数:0 回复次数:10 
小问关于this的问题?
各位大侠:
我是新手,才学习C#,遇到这个问题请看
using System;
class Fact
{
int x;
public int GetFact()
{
float temp;
int save=x;
int a=1;
while(x>a)
{
a++;
temp=this.x/a; //我的红色写的这个值是多少?
x/=a;
if((float)x!=temp)
{
return -1;
}
}
swap(this.x,save);//这个红色写的值又是多少?不是太明白?
return save;
}
}
这个例子是说明this 的值,可是我想来想去就是想不通,这是怎么一回事?x的值是不是默认为0呀?那个大侠,看后,给我解释一下,我对这个例子很是不明白?先谢谢各位的回答.
搜索更多相关主题的帖子: public return color 
2006-03-19 10:07
dazhi_
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2006-3-10
得分:0 
GetFact()是一个函数,它要被调用里面的代码才能执行,
x要符值的,
如果x没符值,.net编译是通不过的。

2006-03-19 11:50
water123456
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:3208
专家分:5
注 册:2006-2-21
得分:0 

这是电子教程的原程序,我们只讨论这个类里面的,
这里面的X不是定义过了吗?不是对整数的默认值就是0吗?

可是我最重要的是想问那个this的用法.谢谢你的回答,能给我解释一下吗?
要是认为一定得要给X值的话,我们就假设它正确,把它做为1的话,那我划的那个红色的值是什么呀?

谢谢各位,可以说一下吗?我是菜鸟,还请各们多多的帮助了.


让我们风风火火的过一生,别平平淡淡过一年。
2006-03-19 12:07
water123456
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:3208
专家分:5
注 册:2006-2-21
得分:0 

呵呵,怎么没有人回答呀


让我们风风火火的过一生,别平平淡淡过一年。
2006-03-19 18:58
water123456
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:3208
专家分:5
注 册:2006-2-21
得分:0 

在线等了.


让我们风风火火的过一生,别平平淡淡过一年。
2006-03-20 11:19
夜空的星星
Rank: 1
等 级:新手上路
帖 子:67
专家分:0
注 册:2006-3-17
得分:0 

楼主可能之前没怎么学过面向对象编程把,在一个类里面,有this关键字,这是指当前类的类的实例
this.x就是当前实例的X值.比如:
有两个实例:
Fact F1,F2
假如F1.x=1,F2.x=2(事实不能这样赋值,这里只为说明方便)
那你调用GetFact()时候:
F1.GetFact() 这时候GetFact()里面的this.x就是1,也就是F1.x的值;
F2.GetFact() 这时候GetFact()里面的this.x就是2,也就是F2.x的值;
不知我说的清楚否


qq:58926957 技术群:22185706
2006-03-20 13:38
water123456
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:3208
专家分:5
注 册:2006-2-21
得分:0 

是呀,你说的这个我明白了,
可是我上面的那个X不是类的字段吗?这的初始值是多少?到下面方法中this.x是实例的值还是类的字段,不是太明白,呵呵,我没有学习学习面向对象的编程
请高手指点,谢谢.


让我们风风火火的过一生,别平平淡淡过一年。
2006-03-21 12:30
夜空的星星
Rank: 1
等 级:新手上路
帖 子:67
专家分:0
注 册:2006-3-17
得分:0 
以下是引用water123456在2006-3-21 12:30:00的发言:

是呀,你说的这个我明白了,
可是我上面的那个X不是类的字段吗?这的初始值是多少?到下面方法中this.x是实例的值还是类的字段,不是太明白,呵呵,我没有学习学习面向对象的编程
请高手指点,谢谢.

这里的this.x是实例的值,跟实例有关系的
如果定义x的时候,是定义成:static int x 的话,用的时候不能this.x这样调用x的,这样定义的x是跟类有关系,类的实例共享这个x


qq:58926957 技术群:22185706
2006-03-21 12:56
water123456
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:3208
专家分:5
注 册:2006-2-21
得分:0 

可是在这个类开始时,不是有个X吗?
class Fact
{
int x;
public int GetFact()
我是对他很迷了,不知道为什么会出现在它了,难道这个也是我们在实例化的时候,才用的,要是不定义,就有错了吗?给我再指点一下这个吧,谢谢你了,我在线等了.


让我们风风火火的过一生,别平平淡淡过一年。
2006-03-21 13:21
夜空的星星
Rank: 1
等 级:新手上路
帖 子:67
专家分:0
注 册:2006-3-17
得分:0 
老兄,干脆你加我qq:58926957,这样反覆,什么时候才到终点

qq:58926957 技术群:22185706
2006-03-21 17:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-51313-1-1.html




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

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