c#中的static int

SHR*_*HRI 3 c#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace LearnThread
{
    class Delay
    {
        public int timePass()
        {
            static int i=0;
            for(i=0; i<100;i++)
            {
                Thread.Sleep(1000);
            }
            return i;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

错误:修饰符'static'对此项无效

为什么静态是错误的?因为我们可以在C语言中使用,所以我们不能使用static for int?

m-y*_*m-y 16

您不能将本地范围的变量声明为static,这就是您正在做的事情.

您可以为类创建静态字段或静态属性(即它是类的成员),它将驻留方法之外.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace LearnThread
{
    class Delay
    {
        static int i=0;

        public int timePass()
        {
            for(i=0; i<100;i++)
            {
                Thread.Sleep(1000);
            }
            return i;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

虽然,这段代码看起来有点愚蠢...为什么在for循环迭代中使用静态字段呢?多次调用该方法可能会导致很多问题.我假设您要么通过玩疯狂的代码来学习C#,要么就是在尝试解决另一个问题并将这些代码投入其中.无论是那个还是......你做错了.:)