清风小溪 2018-09-04 01:16 采纳率: 0%
浏览 5134
已采纳

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循环不执行,就没有赋初值,需要先赋初值

    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 I350 Gigabit Network
  • ¥15 关于#abap#的问题,请各位专家解答!
  • ¥20 内网通过公网访问外网问题
  • ¥20 谁有这个东西 继续教育的
  • ¥15 怎么使请求通过cors
  • ¥15 WDM 驱动ACPI 相关疑问
  • ¥15 prism 跨窗体共享数据绑定 wpf
  • ¥15 hdl designer突然用不了系统的moduleware组件,请问有人遇到或者怎么解决吗?
  • ¥15 0基础计算机毕设,应该从哪开始?
  • ¥60 使用DKT40脑图划分ROI区域