日期:2014-05-18  浏览次数:20925 次

请问C#中是否有这样的一种自增函数?
请问C#中是否有这样的一种自增函数:
int   getAutoPlusPlus()
{
/*
函数不能调用外部定义的变量,无传入参数
该函数第一次返回的值可以自己定义,
但是,每调用一次函数,返回值就增大1个单位
*/
return   xxx;
}
假定该函数自己定义的第一个返回值是1,那么该函数达到的作用如下:
int   j;
for(int   i=0;i <2008;i++)
{
  j=getAutoPlusPlus();
  Console.WriteLine(j);
}
屏幕上依次打印:
1
2
3
.
.
.
2008
希望大家能提供一个思路,谢谢!

------解决方案--------------------
private int XXX = 1;

private int getAutoPlusPlus()
{
return XXX++;
}

如果防止对象实例化
那就弄成static的
------解决方案--------------------
static
------解决方案--------------------
private int getAutoPlusPlus()
{
static int XXX = 1;
return XXX++;
}

------解决方案--------------------
楼主不懂面向对象

------解决方案--------------------
新建一个cs文件,写上:

using System;

namespace GlobeVariable
{
/// <summary>
/// GlobeVariable 的摘要说明。
/// </summary>
public class GlobeVar
{
private static int _xxx;

public GlobeVar(int indexStart)
{
_xxx = indexStart;
}
public GlobeVar()
{

}

public int increase
{
_xxx++;
get {return _xxx;}
}

}
}

然后在你的程序中调用GlobeVar类就可以了
------解决方案--------------------
我的理解是:当一个对象有返回值的时候,这个对象的内部定义变量将被释放,系统将回收资源。这样的话,除非把这个对象放入一个外部全局变量中,并定义为static,不然很难做到。
------解决方案--------------------
写入文件或是注册表


------解决方案--------------------
加个锁 否则可能会出错
public int increase
{
get {
lock(this)
{
_xxx++;
return _xxx;
}
}
}
------解决方案--------------------
class Program
{
static void Main(string[] args)
{
int j;
for (int i = 0; i < 10; i++)
{
j = getAutoPlusPlus();
Console.WriteLine(j);
}
}
static int i = 0;
static int getAutoPlusPlus()
{
i+=1;
return i;
}
}
}


------解决方案--------------------
上面那个少++了
int getAutoPlusPlus()
{
int i=0;
StreamWriter sw = File.CreateText(c:\number.txt);
sw.WriteLine(i.tostring());
sw.Close();
System.IO.StreamReader StrReader= new System.IO.StreamReader(c:\number.txt);
while(StrReader.Peek()> 0 )
{
int j=int32.parse(StrReader.ReadLine().Trim().ToString());
}
j++;
return j