菜鸟求助有关静态数组问题,请前辈指教

cqyddxzy 2012-03-27 10:47:02
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace p6_2
{
class Program
{
static void Main(string[] args)
{
BankCard card1 = new BankCard(50);
BankCard card2 = new BankCard(100);
card2 = new BankCard(200);
}
}
public class BankCard
{
private string _id;
private decimal _money;
private static int _objects=0;
private static int _classes=0;

public BankCard(decimal money)//构造函数
{
_money = money;
_objects++;
Console.WriteLine("对象数量:" + _objects);
_id = _objects.ToString();
}
~BankCard()
{
_objects--;
}
static BankCard()//静态构造函数
{
_classes++;
Console.WriteLine("类数量:" +_classes);
}
}
}


这个程序我有好多地方不懂,请前辈们指点一个。
Q1:
那个TOstring在程序里面起什么作用呢?
Q2:析构函数里面为什么用objects--这种写法,有何作用呢?
Q3:然后就是程序的调试结果,类数量为什么会是1呢?不是应该有Program 和 BankCard两个类吗?
还有就是为什么对象数量1.2.3是怎么出来的。。。
问题有点多,实在不好意思。谢谢了
...全文
44 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cqyddxzy 2012-03-27
  • 打赏
  • 举报
回复
前辈,那么对象数量3是如何得到呢?
bdmh 2012-03-27
  • 打赏
  • 举报
回复
ToString将objects转为字符串
用--,应该是为了销毁对象,或者减少一个引用计数,要看具体情况,我估计objects这里应该是个static变量,是累积的,创建一个就+1,销毁一个就-1,保证实例个数的正确
类数量是1,因为static BankCard这是静态构造函数,这个只创建一次,所以只执行一次_classes++;而对象的public BankCard是非静态的,每次创建实例都会执行,所以objects在累计

111,126

社区成员

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

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

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