如何能够在函数内部使用这个外部定义的变量?

dzone12345 2018-01-03 09:59:51
int t = 2000;
static void x(int[] arr, int index)
{
Console.WriteLine("x--执行,index={0}", index);
t = new Timer(h => y(arr, index), null, t, -1);
}
这个红色的提示有错误,如何能够在函数内部使用这个外部定义的变量t呢?
...全文
912 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
enaking 2018-01-04
  • 打赏
  • 举报
回复
引用 8 楼 dzone12345 的回复:
int b = 2000; void x(int[] arr, int index) { Console.WriteLine("x--执行,index={0}", index); t = new Timer(h => y(arr, index), null, b, -1); } 这样的去掉 static 也不行啊
你要明白静态和动态的区别,静态类申明就开始了,而动态是对象创建后才能被调用,如果取消static,x就是动态的了,但你在静态的函数里调用动态函数x,这时的x还没有被创建。
dzone12345 2018-01-04
  • 打赏
  • 举报
回复
int b = 2000; void x(int[] arr, int index) { Console.WriteLine("x--执行,index={0}", index); t = new Timer(h => y(arr, index), null, b, -1); } 这样的去掉 static 也不行啊
enaking 2018-01-04
  • 打赏
  • 举报
回复
static int t = 2000; static void x(int[] arr, int index) { Console.WriteLine("x--执行,index={0}", index); t = new Timer(h => y(arr, index), null, t, -1); } 这样就可以了。
xinbada1985 2018-01-04
  • 打赏
  • 举报
回复
你的X是个一个static的静态类,所以使用的t也应该是静态的,要想用把static去掉就可以了
wanghui0380 2018-01-04
  • 打赏
  • 举报
回复
静态的只能用静态的。
xuzuning 2018-01-04
  • 打赏
  • 举报
回复
int t = 2000; static void x(int[] arr, int index) ... t =.... 此时出错的原因是:静态方法中不能访问动态属性 int t = 2000; void x(int[] arr, int index) ... t = new Timer.... 此时出错的原因是:数据类型不相符
秋的红果实 2018-01-03
  • 打赏
  • 举报
回复
不过,不知道lz想实现什么功能
秋的红果实 2018-01-03
  • 打赏
  • 举报
回复
看你的参数,应该是这样

System.Threading.Timer t;
 static void x(int[] arr, int index)
         {
             Console.WriteLine("x--执行,index={0}", index);
              t = new System.Threading.Timer(h => y(arr, index), null, t, -1);
        }
  • 打赏
  • 举报
回复
所以 变量 i 必须是 static 的 --> 所以 变量 b 必须是 static 的
  • 打赏
  • 举报
回复
static 方法中只能访问同样是定义在类型(而非对象)上的 static 变量,所以 变量 i 必须是 static 的。
dzone12345 2018-01-03
  • 打赏
  • 举报
回复
int b = 2000; static void x(int[] arr, int index) { Console.WriteLine("x--执行,index={0}", index); t = new Timer(h => y(arr, index), null, b, -1); } 这个红色的提示有错误, 无法通过嵌套类型“WindowsFormsApplication123.Form1.Program”来访问外部类型“WindowsFormsApplication123.Form1”的非静态成员 如何能够在函数内部使用这个外部定义的变量t呢?
正怒月神 2018-01-03
  • 打赏
  • 举报
回复
int t = 2000; t = new Timer 类型都不一样。你想干什么?
圣殿骑士18 2018-01-03
  • 打赏
  • 举报
回复
请学会提问题。出什么错误?

110,568

社区成员

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

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

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