请问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