初学C#一段代码请大家指点,小弟先谢过了!

yangyugw 2004-03-15 03:20:32
public class MyStack
{
//栈顶元素
private Node first = null;

****我的疑问一,first=null是怎么个意思。一个空的对象么

//是否为空
public bool Empty
{
get
****我的疑问二这个get是什么意思上面的Empty是变量还是方法
{
return (first == null);
}
}
//弹出栈顶元素
public object Pop()
{
if (first == null)
throw new Exception("堆栈为空");
else
{
object temp = first.Value;
first = first.Next;
return temp;
}
}
//将o推入堆栈
public void Push(object o)
{
first = new Node(o, first);
}
class Node
{
public Node Next;
public object Value;
//先转化为自身的另一个构造函数的调用
public Node(object value): this(value, null) {}
****我的疑问三 这个是什么意思,什么叫先转化为自身的另一个构造函数的调用,怎么转化的。
//构造函数
public Node(object value, Node next)
{
Next = next;
Value = value;
}
}
}
...全文
23 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangyugw 2004-03-16
  • 打赏
  • 举报
回复
to 赵
public Node(object value)
{
this(value, null);
}
这样不行
yangyugw 2004-03-16
  • 打赏
  • 举报
回复
呵呵,1,2问题我是差不多能猜个大概
public Node(object value): this(value, null)这个不太容易猜
从delphi转C#对一些地方不太了解,见笑
marvelstack 2004-03-15
  • 打赏
  • 举报
回复
楼主,要努力呀,这个在实际的代码中用的很频繁的,
推荐你看看Stanley B.Lippman写的《C#Primer》。好书,最好看影印版的。
超级路灯 2004-03-15
  • 打赏
  • 举报
回复
楼主对C#的基本的东西都不是很了解

应该看看C#入门经典
superryu 2004-03-15
  • 打赏
  • 举报
回复
1.声明一个Node类型的变量,并设定初值为null
2.get是属性里面的方法,用于返回该属性的值。Empty不是变量也不是方法,是属性,该属性的类型是boolean型,也就是Ture或False,从这段代码来看,Empty返回的是Ture,因为get方法里的语句return (first == null);表示如果变量first是为null那么返回Ture,不为null返回False
3.public Node(object value): this(value, null) {}这个语句将调用他下面的那个方法public Node(object value, Node next)
{
Next = next;
Value = value;
}
并将value值传进去。也就是调用另一个构造函数。
qiume 2004-03-15
  • 打赏
  • 举报
回复
1、null关键字在c#中是表示不引用任何对象的空引用的文字值。null 是引用类型变量的默认值。
2、Empty是属性,通过get关键字返回变量值,还可以通过set设置变量值。
// 只有get的话,该属性为只读属性
3、你的类中包含两个构造函数,一个带两个参数,public Node(object value, Node next) ;另一个带一个参数,public Node(object value)。后者通过操作符:调用了前者,既
this(value, null)
crazyuu 2004-03-15
  • 打赏
  • 举报
回复
嗯,小康说得好
CBJ2049011 2004-03-15
  • 打赏
  • 举报
回复
我个人观点,如有错误指正

public class MyStack
{
//栈顶元素
private Node first = null;

****我的疑问一,first=null是怎么个意思。一个空的对象么
****我的回答一,正确,可以直接写成“private Node first; 一个意思”

//是否为空
public bool Empty
{
get
****我的疑问二这个get是什么意思上面的Empty是变量还是方法
****我的回答二:Empty是属性,属性有get和set方法,这里表示是只读属性,当调用
MyStack ms = new MyStack();bool empty = ms.Empty;自动调用get方法
{
return (first == null);
}
}
//弹出栈顶元素
public object Pop()
{
if (first == null)
throw new Exception("堆栈为空");
else
{
object temp = first.Value;
first = first.Next;
return temp;
}
}
//将o推入堆栈
public void Push(object o)
{
first = new Node(o, first);
}
class Node
{
public Node Next;
public object Value;
//先转化为自身的另一个构造函数的调用
public Node(object value): this(value, null) {}
****我的疑问三 这个是什么意思,什么叫先转化为自身的另一个构造函数的调用,怎么转化的。
****我的回答三 : 应该是为了方便,但是肯定可以写成如下方式
public Node(object value)
{
this(value, null);
}
//构造函数
public Node(object value, Node next)
{
Next = next;
Value = value;
}
}
}
liuhaixue 2004-03-15
  • 打赏
  • 举报
回复
答:
1、null关键字在c#中是表示不引用任何对象的空引用的文字值。null 是引用类型变量的默认值。
2、Empty是属性,通过get关键字返回变量值,还可以通过set设置变量值。
3、你的类中包含两个构造函数,一个带两个参数,public Node(object value, Node next) ;另一个带一个参数,public Node(object value)。后者通过操作符:调用了前者,既
this(value, null)
MicoInNet 2004-03-15
  • 打赏
  • 举报
回复
疑问一,first=null是怎么个意思。一个空的对象么
堆栈栈顶元素当然为空了
疑问二这个get是什么意思上面的Empty是变量还是方法
get是取值函数和set相对应
疑问三 (//先转化为自身的另一个构造函数的调用
public Node(object value): this(value, null) {})
这个是什么意思,什么叫先转化为自身的另一个构造函数的调用,怎么转化的。
上面是带参数的构造函数,虽然已经有一个默认构造函数,但是这里可以再定义一个代参数的构造函数,两个构造函数都可以调用,主要看有没有相应的参数。
yaguchimari 2004-03-15
  • 打赏
  • 举报
回复
楼主应该好好拿本书,学学 C#。 呵呵
DimVar 2004-03-15
  • 打赏
  • 举报
回复
1 对
2 是属性。get就是取得这个属性的值,set来设置它的值
3 public Node(object value): this(value, null)是调用public Node(object value, Node next)
DimVar 2004-03-15
  • 打赏
  • 举报
回复
1 对
2 是属性。get就是取得这个属性的值,set来设置它的值
3 public Node(object value): this(value, null)是调用public Node(object value, Node next)
crazyuu 2004-03-15
  • 打赏
  • 举报
回复
我也学学,
特别是第二问题,我不知道属性到底有什么用,就是用来封装成员的么
yangyugw 2004-03-15
  • 打赏
  • 举报
回复
up

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧