清风小溪
2018-09-04 01:16
采纳率: 48.3%
浏览 4.5k

C# 使用了未赋值的局部变量 ,其实是赋值的

循环中已经给TAC 赋值,但是return 后面的TAC 报错说为赋值求指教。

图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • dabin510 2018-09-04 01:38
    已采纳

    其实楼上说的并不完全正确,准确的说不是if的原因,应该是foreach作用域的原因,可以把if去掉测试一下。
    根本原因是c#编译器判断变量是否赋值是在当前作用域或者是父作用域,而不能判断子作用域

    点赞 打赏 评论
  • hxycsdn9159 2018-09-04 01:25

    定义的时候这样定义: string tac = string.Empty 或者 string tac = null; 编译器报错是因为你赋值是写在循环里面,万一这个if永远进不去那tac就永远不会被赋值

    点赞 打赏 评论
  • 射手座cl 2018-09-04 01:28

    if循环不执行,就没有赋初值,需要先赋初值

    点赞 打赏 评论

相关推荐 更多相似问题