当前位置: 首页 > article >正文

27.循环里赋值了,循环外使用提示变量未赋值 C#例子

这是一个令人困惑的错误:在这段代码中,用于打印的变量str被编译器标记为红色,提示未被赋值。然而,从代码来看,str明显已经被赋值了,而且不止一次,总共赋值了十次。

问题的根源在于错误提示的误导。编译器报错并不是因为str没有被赋值,而是因为str没有被初始化。

尽管在循环中我们确实为str赋了值,但编译器并没有识别这一点。为了使代码能够正常运行,我们只需要在声明str时给它一个初始值,任意值都可以。这样,编译器就能正确识别str的值,从而避免这个错误。

using System;
public class Program
{
    static void Main(string[] args)
    {
        string str;
        for(int i = 0; i < 10; i++)
        {
            str = $"内部值{i}";
        }
        Console.WriteLine(str);
    }
}

为str初始化:

using System;
public class Program
{
    static void Main(string[] args)
    {
        string str = "1";
        for(int i = 0; i < 10; i++)
        {
            str = $"内部值{i}";
        }
        Console.WriteLine(str);
    }
}

输出结果:

内部值9


http://www.kler.cn/a/464003.html

相关文章:

  • C++软件设计模式之模板方法模式
  • Lumos学习王佩丰Excel第二十三讲:Excel图表与PPT
  • 数据分析-Excel
  • 大数据面试笔试宝典之Flink面试
  • 内网穿透wordPress的问题
  • 【SpringMVC】拦截器
  • Servlet会话跟踪
  • AI驱动的PDF翻译保留排版格式-PDFMathTranslate
  • Flutter 调试环境下浏览器网络请求跨域问题解决方案
  • JVS低代码快速开发中“实体之间的关系”配置,表单引擎子表构建全攻略
  • 高等数学学习笔记 ☞ 无穷小与无穷大
  • 王佩丰24节Excel学习笔记——第二十二讲:制作甘特图与动态甘特图
  • Three.js教程008:使用lil-GUI调试开发3D效果
  • RK3568平台开发系列讲解(Linux文件系统篇)缓存
  • [Spring] MyBatis操作数据库(基础)
  • 【RK3588 Linux 5.x 内核编程】-I2C虚拟驱动(模板)
  • vue-table-<td colspan=“2“>不生效
  • 100天精通Python(爬虫篇)——第113天:爬虫基础模块之urllib详细教程大全
  • Excel 后,我们需要怎样的数据分析软件
  • 基于Java+MySQL实现的(GUI)酒店管理系统(软件工程设计)