| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 446 人关注过本帖
标题:请教一个问题?
只看楼主 加入收藏
loook
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-8-28
收藏
 问题点数:0 回复次数:3 
请教一个问题?

class point
{
int my_x = 1;
public int my_y;
public int x
{
get { return my_x; }//当~~执行程序时,构造函数先被执行。
set
{
if (value < 0)
my_x = value + 100;
else
my_x = value+2;

}
}
public int y
{
get {return my_y; }

set{
if (value < 0)
my_y = value +2;
else
my_y = value;
}
}

public void pppo()
{
System.Console.WriteLine("A:--{0}--{1}",x,y);
}

public point()
{
my_x = 8;
my_y = 0;
}

}
class line
{

private point aaa;

public point start
{
get { return aaa;}
set
{
if (start.x > 0)
start.x = value.x + 1111;
else
start.x = 0;

}

}
public line()
{
aaa = new point();
}

}

class myApp
{
public static void Main()
{

point starting = new point();
starting.pppo();
System.Console.WriteLine("1:--{0}--{1}",starting.x,starting.y);
line App = new line();

App.start.x = 66;
App.start.y = 100;
System.Console.WriteLine("2:---{0}--{1}----", App.start.x, App.start.y);
System.Console.WriteLine("3:--{0}--{1}", starting.x,starting.y);
starting.pppo();

System.Console.WriteLine("4:=={0}=={1}==", starting.x, starting.my_y);
starting.x = 5;
starting.my_y = 9;//因为my_y被声明为公有~所以能够直接赋值。

System.Console.WriteLine("5:=={0}=={1}==", starting.x, starting.my_y);

System.Console.ReadLine();

}
}

结果:
A:--8--0
1:--8--0
2:---68--100---
3:--8--0
A:--8--0
4:==8==0
5:==7==9
--------------------------------------------------------------
刚刚学习C#,问题可能有些愚蠢~~不要见怪.

App.start.x = 66;
App.start.y = 100;
为什么这里的值写到~~point类的x 和y呢?

------------------------------------------------
public point start
{
get { return aaa;}
set
{
if (start.x > 0)
start.x = value.x + 1111;
else
start.x = 0;

}

}

这里的set语句~不会改变~App.start.x的值呢?象是多余的.

2007-09-05 01:10
virusswb
Rank: 1
等 级:新手上路
威 望:1
帖 子:342
专家分:0
注 册:2005-8-6
收藏
得分:0 

为什么这里的值写到~~point类的x 和y呢?

你这句话不明白什么意思啊,是想知道为什么可以写吗,App的 public方法 public属性,当然可以写入

set
{
if (start.x > 0)
start.x = value.x + 1111;
else
start.x = 0; }

有条件的改变啊,不满足当然不改变了,匹配的是下面的

public int x
{
get { return my_x; }//当~~执行程序时,构造函数先被执行。
set
{
if (value < 0)
my_x = value + 100;
else
my_x = value+2; }
}


jorden008@
2007-09-05 11:09
virusswb
Rank: 1
等 级:新手上路
威 望:1
帖 子:342
专家分:0
注 册:2005-8-6
收藏
得分:0 
ok

jorden008@
2007-09-05 11:15
loook
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-8-28
收藏
得分:0 

App.start.x = 66;
App.start.y = 100;
这两个值是在point类控制流程,

而就不会在line类控制流程的呢?

public point start
{
get { return aaa;}
set
{
if (start.x > 0)
start.x = value.x + 1111;
else
start.x = 0;

}

}

2007-09-05 12:06
快速回复:请教一个问题?
数据加载中...
 
   



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

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