日期:2014-05-20  浏览次数:20476 次

如何纪录方法被调用次数,以及定义Int型数据判断
现在想做这样一个功能,某个函数只能被调用 6次. 我用Button做过i++每次+1.如果达到6,就Return false应该就OK了.

有两个问题

1 怎么实现? 最好 C# Js 都来一份
2 定义整型I后, 判断 if (i==null) or (i.tostring==null) or (i.tostring=="") 都进不去断点. 那它定义后到底属于空呢还是null还是别的? (我只是想判断无值的时候给他赋个值, 其实第1题回答了,第2题也就回答了 )

谢谢大家了!!


C# code

protected int i;

    protected void Page_Load(object sender, EventArgs e)
    {

    }

    public void binder()
    {
        if (i.ToString() == null)
        {
            
        }

        if (i.ToString() == "")
        {

        }
        if (i == null)
        { 
           
        } 
    }


    protected void Button1_Click(object sender, EventArgs e)
    {
        binder();
    }






------解决方案--------------------
I 初始值是0 不是null 所以进不去啊
------解决方案--------------------
web和winform不一样的!!!每次请求页面都会生成一个Page对象,所以每次i的初始值都是0
------解决方案--------------------
public static int i=0;
protected void Button1_Click(object sender, EventArgs e) 

i++;
if(i>6)
{Button1.Enable=false;
retrun;
}


------解决方案--------------------
探讨
int i 的时候没有初始化,你可以测试一下:Response.Write(i.ToString());
结果应该是0,所以i既不是null 也不是"".

------解决方案--------------------
i 是申明为全局的虽然没有赋初始值,会自动给它个 初始值是0 ,所以进不去,代码编译时会出现警告,如果在方法里面直接定义i不给初始值就错误,所以说你上面的判断:
 if (i.ToString() == null)
{

}

if (i.ToString() == "")
{

}
if (i == null)



无用,直接判断if (i == 0){}就可以了


------解决方案--------------------
你说的是不是点一下按钮调用一下binder()?并且只能调用6次?如果是那很简单:

protected int i;

protected void Page_Load(object sender, EventArgs e)
{

}

public void binder()
{
....
}


protected void Button1_Click(object sender, EventArgs e)
{
if(i<6){
i++;
binder();
}
}

------解决方案--------------------
其实就是i不能再函数内部 必须在外部定义 如果不是winform要求放到持久化对象里面 比如session cookie或者数据库什么的 这样才可以
------解决方案--------------------
支持
------解决方案--------------------
Mark!
------解决方案--------------------
mark
------解决方案--------------------
学习
------解决方案--------------------
最好不要用session ,不刷新就用隐藏的一个textbox保存
------解决方案--------------------
Good!
------解决方案--------------------
顶!
------解决方案--------------------