AI教我学编程之C#变量及实例演示

这篇具有很好参考价值的文章主要介绍了AI教我学编程之C#变量及实例演示。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

在AI教我学编程之AI自刀 这篇文章中,我们知道了变量的基础类型,那么变量在C#中有什么作用呢?我们一起来看看吧!

目录

  • 重点先知
  • 变量
    • 变量类型
    • 实例演示
  • 变量声明
    • 实例演示
    • 提出疑问
    • 初始化变量
    • 自动初始化
  • 多变量声明
    • 实例演示
  • 使用变量的值
    • 实例演示
  • 静态类型和dynamic 关键字
    • 实例演示
  • 可空类型
    • 实例演示
    • 补充
  • 总结

重点先知

变量是一个名称,表示程序执行时存储在内存中的数据。

变量

变量类型

AI教我学编程之C#变量及实例演示,2024进行时,人工智能,c#,开发语言,人工智能,人机交互,改行学it,笔记

C#中有什么样的变量?他们分别有什么作用?列张表

AI教我学编程之C#变量及实例演示,2024进行时,人工智能,c#,开发语言,人工智能,人机交互,改行学it,笔记

C#中有局部变量,字段,参数,数据元素这四类变量

AI教我学编程之C#变量及实例演示,2024进行时,人工智能,c#,开发语言,人工智能,人机交互,改行学it,笔记

实例演示

AI教我学编程之C#变量及实例演示,2024进行时,人工智能,c#,开发语言,人工智能,人机交互,改行学it,笔记

列举代码示例,要求包含以上四种类型的变量,并把它们的位置和作用明确标示出来

AI教我学编程之C#变量及实例演示,2024进行时,人工智能,c#,开发语言,人工智能,人机交互,改行学it,笔记

using System;

class ExampleClass
{
    // 字段
    private int classField = 10; // 类的成员变量,存储对象的状态信息

    // 方法
    public void ExampleMethod(int methodParameter)
    {
        // 局部变量
        int localVar = 5; // 在方法的作用域保存临时数据

        // 使用参数和字段
        int result = localVar + methodParameter + classField;
        Console.WriteLine($"结果: {result}");
    }

    static void Main()
    {
        ExampleClass exampleObj = new ExampleClass();
        // 调用方法并传递参数
        exampleObj.ExampleMethod(7);
        
        // 数组元素
        int[] myArray = { 1, 2, 3, 4, 5 };
        Console.WriteLine($"数组元素:{myArray[2]}"); // 存储在数组中的单个数据单元
    }
}

变量声明

变量在使用之前必须声明。变量声明定义了变量,并完成两件事

  • 1、给变量命名,并为它关联一种类型;
  • 2、让编译器为它分配一块内存。

实例演示

AI教我学编程之C#变量及实例演示,2024进行时,人工智能,c#,开发语言,人工智能,人机交互,改行学it,笔记

声明四个不同类型的变量,不赋值,标明他们的类型以及区别

AI教我学编程之C#变量及实例演示,2024进行时,人工智能,c#,开发语言,人工智能,人机交互,改行学it,笔记

在代码块中,通过声明并赋值同类型的变量,展示了不同类型的变量在使用时的区别。未赋值的变量在尝试输出时会引发编译错误。

using System;

class VariableDeclarationExample
{
    static void Main()
    {
        // 不赋值的变量声明
        int integerValue;
        double doubleValue;
        char charValue;
        string stringValue;

        // 在代码块中标明变量的类型和区别
        {
            // 整数类型
            int blockInt = 42;
            Console.WriteLine($"整数类型变量:{blockInt}");

            // 双精度浮点数类型
            double blockDouble = 3.14;
            Console.WriteLine($"双精度浮点数类型变量:{blockDouble}");

            // 字符类型
            char blockChar = 'A';
            Console.WriteLine($"字符类型变量:{blockChar}");

            // 字符串类型
            string blockString = "Hello";
            Console.WriteLine($"字符串类型变量:{blockString}");
        }

        // 尝试输出未赋值的变量将会引发编译错误
        // Console.WriteLine($"未赋值的整数类型变量:{integerValue}");
        // Console.WriteLine($"未赋值的双精度浮点数类型变量:{doubleValue}");
        // Console.WriteLine($"未赋值的字符类型变量:{charValue}");
        // Console.WriteLine($"未赋值的字符串类型变量:{stringValue}");
    }
}

提出疑问

AI教我学编程之C#变量及实例演示,2024进行时,人工智能,c#,开发语言,人工智能,人机交互,改行学it,笔记

未赋值的变量在尝试输出时会引发什么样的编译错误?

AI教我学编程之C#变量及实例演示,2024进行时,人工智能,c#,开发语言,人工智能,人机交互,改行学it,笔记

未赋值的变量在尝试输出时会引发编译错误,具体错误消息可能是类似以下的形式:

Use of unassigned local variable 'variableName'

其中,variableName 是未赋值的变量的名称。这个错误提示表示尝试使用未初始化(未赋值)的局部变量,违反了C#编译器的规则。在使用变量之前,必须为其分配一个值。

是这样吗?让我们运行一下看看!
AI教我学编程之C#变量及实例演示,2024进行时,人工智能,c#,开发语言,人工智能,人机交互,改行学it,笔记

初始化变量

声明变量时,可以通过初始化语句将其内存初始化为明确的值。未初始化的局部变量具有未定义的值,无法在赋值之前使用,尝试使用将导致编译错误。

自动初始化

变量在声明时,有些会被自动设为默认值,而有些则不能。未被自动初始化的变量包含未定义的值,必须在赋值前初始化,否则会导致编译错误

实例演示

AI教我学编程之C#变量及实例演示,2024进行时,人工智能,c#,开发语言,人工智能,人机交互,改行学it,笔记

列举实例以说明:哪种类型的变量会被自动初始化以及哪种类型的变量不会被初始化?

AI教我学编程之C#变量及实例演示,2024进行时,人工智能,c#,开发语言,人工智能,人机交互,改行学it,笔记

using System;

class VariableInitializationExample
{
    static void Main()
    {
        // 会被自动初始化为默认值的变量
        int autoInitializedInt;
        double autoInitializedDouble;
        bool autoInitializedBool;
        string autoInitializedString;

        // 输出未初始化的变量(自动初始化)的默认值
        Console.WriteLine($"int 默认值:{autoInitializedInt}");
        Console.WriteLine($"double 默认值:{autoInitializedDouble}");
        Console.WriteLine($"bool 默认值:{autoInitializedBool}");
        Console.WriteLine($"string 默认值:{autoInitializedString}");

        // 不会被自动初始化的变量
        int notAutoInitializedInt;
        double notAutoInitializedDouble;
        bool notAutoInitializedBool;
        string notAutoInitializedString;

        // 尝试输出未初始化的变量将导致编译错误
        // Console.WriteLine(notAutoInitializedInt);
        // Console.WriteLine(notAutoInitializedDouble);
        // Console.WriteLine(notAutoInitializedBool);
        // Console.WriteLine(notAutoInitializedString);
    }
}

上述代码中,autoInitializedIntautoInitializedDoubleautoInitializedBoolautoInitializedString 会被自动初始化为默认值(0、0.0、false、null),而 notAutoInitializedIntnotAutoInitializedDoublenotAutoInitializedBoolnotAutoInitializedString 不会被自动初始化,尝试输出它们将导致编译错误。

多变量声明

  • 可以在单个声明语句中声明多个变量。
  • 变量声明中的变量类型必须相同
  • 变量名必须用逗号分隔,可以在变量名后包含初始化语句

实例演示

AI教我学编程之C#变量及实例演示,2024进行时,人工智能,c#,开发语言,人工智能,人机交互,改行学it,笔记

列举多变量共同声明的实例,并在一条声明中声明两个不同类型的变量

AI教我学编程之C#变量及实例演示,2024进行时,人工智能,c#,开发语言,人工智能,人机交互,改行学it,笔记

using System;

class MultipleVariableDeclarationExample
{
    static void Main()
    {
        // 有效的多变量声明语句
        int x, y, z; // 未初始化的变量
        double pi = 3.14, radius = 5.0; // 初始化的变量

        // 尝试在一条语句中声明两个不同类型的变量,将导致编译错误
        // int a, double b; // 有问题的声明语句

        // 输出已初始化的变量值
        Console.WriteLine($"pi 的值:{pi}");
        Console.WriteLine($"radius 的值:{radius}");
    }
}

上述代码中,xyz 是未初始化的整数变量,而 piradius 是初始化的双精度浮点数变量。注意最后一条声明语句 int a, double b; 是有问题的,因为它企图在一条语句中声明两个不同类型的变量,将导致编译错误。

使用变量的值

变量名代表该变量保存的值,可以通过使用变量名来使用值。

实例演示

AI教我学编程之C#变量及实例演示,2024进行时,人工智能,c#,开发语言,人工智能,人机交互,改行学it,笔记

变量名lk1 表示变量所存储的值。当语句执行的时候,会从内存中获取该值。

AI教我学编程之C#变量及实例演示,2024进行时,人工智能,c#,开发语言,人工智能,人机交互,改行学it,笔记

using System;

class VariableValueExample
{
    static void Main()
    {
        int lk1 = 42; // 变量名 lk1 表示变量所存储的值

        // 输出变量的值
        Console.WriteLine($"lk1 的值:{lk1}");

        // 修改变量的值
        lk1 = 100;

        // 再次输出变量的值
        Console.WriteLine($"修改后 lk1 的值:{lk1}");
    }
}

在上述代码中,lk1 是一个整数变量,表示变量所存储的值。通过输出和修改变量的值,展示了变量在执行语句时从内存中获取值的过程。

静态类型和dynamic 关键字

C#中,变量类型是静态的,由编译器在编译时确定。后来,引入了 dynamic 关键字,代表在运行时解析类型。与静态类型不同,dynamic 类型在编译时不进行类型检查,而是在运行时解析。这使得处理像 IronPython、IronRuby 这样的动态语言编写的.NET程序集成为可能。dynamic 类型在编译时不对类型进行检查,而是在运行时解析,因此需要注意类型不一致的风险。

实例演示

AI教我学编程之C#变量及实例演示,2024进行时,人工智能,c#,开发语言,人工智能,人机交互,改行学it,笔记

使用 dynamic 关键字声明变量

AI教我学编程之C#变量及实例演示,2024进行时,人工智能,c#,开发语言,人工智能,人机交互,改行学it,笔记

using System;

class DynamicTypeExample
{
    static void Main()
    {
        // 使用 dynamic 类型
        dynamic dynamicVar = 10;

        // 输出 dynamic 变量的类型和值
        Console.WriteLine($"dynamicVar 的类型:{dynamicVar.GetType()}");
        Console.WriteLine($"dynamicVar 的值:{dynamicVar}");

        // 修改 dynamic 变量的类型和值
        dynamicVar = "Hello, C#!";
        Console.WriteLine($"修改后 dynamicVar 的类型:{dynamicVar.GetType()}");
        Console.WriteLine($"修改后 dynamicVar 的值:{dynamicVar}");
    }
}

在上述代码中,dynamicVar 是一个使用 dynamic 关键字声明的变量,可以在运行时更改其类型和值。

可空类型

在我们在对数据库进行操作时,希望变量表示未保存的有效值时,针对引用类型可以将变量设为 null。然而,对于值类型,无论内容是否有意义,内存都会分配可空类型允许创建标记为有效或无效的值类型变量,通过布尔指示器确定值的有效性。普通的值类型称为非可空类型。

实例演示

AI教我学编程之C#变量及实例演示,2024进行时,人工智能,c#,开发语言,人工智能,人机交互,改行学it,笔记

根据以上文字列举示例代码

AI教我学编程之C#变量及实例演示,2024进行时,人工智能,c#,开发语言,人工智能,人机交互,改行学it,笔记

using System;

class NullableTypeExample
{
    static void Main()
    {
        // 非可空类型
        int nonNullableInt = 42;
        Console.WriteLine($"非可空整数:{nonNullableInt}");

        // 可空类型
        int? nullableInt = null;
        Console.WriteLine($"可空整数(未赋值):{nullableInt}");

        // 可空类型赋值
        nullableInt = 100;
        Console.WriteLine($"可空整数(已赋值):{nullableInt}");
    }
}

补充

AI教我学编程之C#变量及实例演示,2024进行时,人工智能,c#,开发语言,人工智能,人机交互,改行学it,笔记

这个有什么作用

AI教我学编程之C#变量及实例演示,2024进行时,人工智能,c#,开发语言,人工智能,人机交互,改行学it,笔记

int? 是 C# 中的可空类型(Nullable Type)的表示方法。在这个语法中,? 表示这个类型可以存储正常的 int 值,也可以存储 null 值。这样就允许我们在值类型中表示“无效”的状态。

因此,int? nullableInt = null; 这行代码表示声明了一个可空整数类型的变量 nullableInt,并将其初始化为 null,表示当前没有有效的整数值。如果需要存储实际的整数值,可以随时赋值。

总结

今天的分享就到此结束了,感谢大家的喜爱!如果你觉得本文不错,请给予点赞和收藏,记得关注我的更新哦!你们的支持是我不断更新的动力!

回到顶部文章来源地址https://www.toymoban.com/news/detail-809894.html

到了这里,关于AI教我学编程之C#变量及实例演示的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • GPT教我学Vue-Router

    路由的基本知识点 Vue Router 是 Vue.js 官方的路由管理器。它允许你在 Vue 应用程序中构建单页面应用(SPA),并实现了客户端路由功能。下面是一些 Vue Router 的重要知识点: 路由的基本配置: 使用 Vue.use(VueRouter) 安装 Vue Router 插件。 创建一个路由实例 const router = new VueRouter(

    2024年02月11日
    浏览(26)
  • C# Switch 语句进阶:模式匹配详解与实例演示

      在C#中,switch语句的模式匹配在C# 7.0及以上版本中引入。以下是switch语句中常见的模式及其使用方法的示例: 优点:  用于检查对象的运行时类型,使代码更具可读性。 优点:  用于匹配对象是否等于某个常量值。 优点:  允许将多个模式组合在一起,形成更复杂的匹配

    2024年01月24日
    浏览(34)
  • Spring AOP (面向切面编程)原理与代理模式—实例演示

    Spring 中文文档 (springdoc.cn) Spring | Home 官网         Java是一个面向对象(OOP)的语言,但它有一些弊端。虽然使用OOP可以通过组合或继承的方式来实现代码的重用。但当我们需要为多个不具有继承关系的对象(一般指的是两个不同的类,它们之间没有继承自同一个父类或接

    2024年02月15日
    浏览(42)
  • 【Linux进行时】环境变量and进程优先级

    ❓首先一个问题:我写的代码(这个代码很简单,不用管)编译之后运行的时候为什么要带./ ? 或者说我怎么才可以让我不用带./ ? 💡.代表当前文件下,/是文件分隔符,这是用相对路径的方式来访问,所以我们也可以用绝对路径 myproc和ls都是指令,ls可以直接输入,但是我

    2024年02月08日
    浏览(34)
  • CAD处理控件Aspose.CAD功能演示:在 C#中以编程方式搜索 DWG 图形文件中的文本

    Aspose.CAD 是一个独立的类库,以加强 Java应用程序处理和渲染CAD图纸,而不需要AutoCAD或任何其他渲染工作流程。该CAD类库允许将DWG, DWT, DWF, DWFX, IFC, PLT, DGN, OBJ, STL, IGES, CFF2文件、布局和图层高质量地转换为PDF和光栅图像格式。 Aspose API支持流行文件格式处理,并

    2024年02月04日
    浏览(35)
  • 【云上探索实验室】编程范式变革进行时——CodeWhisperer实践全流程及测评分析报告

    大语言模型(Large Language Model)是当下人工智能领域的热点话题之一。它代表着自然语言处理技术的新高度,而大语言模型也为我们提供了改变编程方式的可能性。 大语言模型凭借其复杂的神经结构和参数,通过海量的数据训练能够模拟人类的语言理解和生成过程,具备上下

    2024年02月08日
    浏览(40)
  • 跟我学java|Stream流式编程——并行流

    并行流是 Java 8 Stream API 中的一个特性。它可以将一个流的操作在多个线程上并行执行,以提高处理大量数据时的性能。 在传统的顺序流中,所有的操作都是在单个线程上按照顺序执行的。而并行流则会将流的元素分成多个小块,并在多个线程上并行处理这些小块,最后将结

    2024年01月25日
    浏览(51)
  • 跟着我学 AI丨AIGC,自媒体的核武器

    自从 ChatGPT 火爆全网之后,AI 相关概念的热度就一直持续高涨不下,尤其是大众都在关注的 AI 的应用场景方向,更是疯狂。无论是 AI 圈内人还是以前对 AI 完全没有认知的人,都想借助 AI 挣上一笔。目前来说最受关注的 AI 应用场景,除了聊天机器人之外,就是 AIGC 了。 AIG

    2024年02月09日
    浏览(22)
  • SparkStreaming【实例演示】

    启动Zookeeper和Kafka集群 导入依赖: 通过循环来不断生产随机数据、使用Kafka来发布订阅消息。 实现实时的动态黑名单机制:将每天对某个广告点击超过 100 次的用户拉黑。(黑名单保存到 MySQL 中。) 先判断用户是否已经在黑名单中?过滤:判断用户点击是否超过阈值?拉入

    2024年02月08日
    浏览(24)
  • Selenium入门详细教程+实例演示

    目录 1.Selenium概述    1.1什么是Selenium    1.2Selenium的优势    1.3Selenium WebDriver原理 2.Selenium环境搭建 3.Selenium 简单示例 4.八大元素定位    4.1定位方式    4.2定位方式的用法 5.Selenium API    5.1WebDriver 常用 API    5.2WebElement 常用 API    5.3代码示例 6.元素等待机制    6.1硬性等待

    2024年02月13日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包