解锁.NET Fiddle:在线编程的神奇之旅

news2025/2/7 3:46:30

在.NET 开发的广袤领域中,快速验证想法、测试代码片段以及便捷地分享代码是开发者们日常工作中不可或缺的环节。而.NET Fiddle 作为一款卓越的在线神器,正逐渐成为众多.NET 开发者的得力助手。它打破了传统开发模式中对本地开发环境的依赖,让开发者们能够在浏览器中轻松实现代码的编写、编译与运行,极大地提升了开发效率与灵活性。在这个追求高效与便捷的时代,在线编程工具的价值愈发凸显,.NET Fiddle 无疑是其中的佼佼者,它为.NET 开发者们开启了一扇通往更高效开发的大门。

##.NET Fiddle 初相识

(一)什么是.NET Fiddle

.NET Fiddle 是专为.NET 开发者量身定制的在线代码编辑和运行平台。它就像是一个随身携带的小型开发工作室,让开发者无需在本地安装庞大的 IDE(集成开发环境)或复杂的编译器,只需打开浏览器,访问其官方网站,就能立即开启编程之旅。在这个平台上,开发者可以尽情地编写 C#、VB.NET、F# 等多种.NET 语言的代码,并且能够实时看到代码的运行结果,仿佛是在与代码进行一场即时对话。

(二)为何选择.NET Fiddle

  1. 方便快捷:无需花费大量时间和精力去安装和配置本地开发环境,打开网页即可开始编程。无论是在办公室、家中,还是在外出途中,只要有网络连接,就能随时随地使用,真正实现了编程的无边界。

  2. 随时随地可使用:只要设备能连接网络并运行浏览器,无论是电脑、平板还是手机,都能成为你的开发工具。这种跨设备的兼容性,让开发者摆脱了设备的束缚,随时抓住灵感的火花。

  3. 利于代码测试:对于一些小型的代码片段测试或者新功能的验证,使用.NET Fiddle 可以快速得到结果,无需在本地项目中进行繁琐的搭建和调试。它就像是一个快速验证想法的试验田,让开发者能够高效地验证自己的思路。

  4. 便于代码分享:生成的代码链接可以轻松分享给他人,方便团队成员之间的协作、技术交流以及向他人展示代码示例。通过分享链接,接收者可以直接在浏览器中查看和运行代码,无需额外的环境配置,大大提高了沟通效率。

实战演练:从 “Hello, World!” 开始

(一)访问与界面探索

  1. 访问网站:打开你常用的浏览器,在地址栏中输入.NET Fiddle 官方网站地址:https://dotnetfiddle.net/ 。按下回车键后,即可进入.NET Fiddle 的世界。这个过程就像是打开一扇通往代码世界的神奇之门,无需繁琐的准备工作,即刻开启编程之旅。

  2. 界面布局:进入网站后,你会看到一个简洁而有序的界面,主要分为四大块,每一块都承载着独特的功能,相互协作,为开发者提供了高效的编程体验。

    • 代码编辑区:这是你施展代码编写才华的舞台,占据了界面的重要位置。在这里,你可以尽情地输入 C# 代码,它就像一个智能的写字板,不仅支持代码高亮显示,让不同的代码元素以不同的颜色呈现,方便你区分和阅读;还具备智能提示功能,当你输入代码时,它会自动弹出相关的方法、属性和变量建议,大大提高了编码的速度和准确性 ,就像有一位贴心的编程助手在身边随时给予帮助。
    • 输出面板:位于界面的下方,是代码运行结果的展示区域。当你运行代码后,无论是简单的文本输出,还是复杂的数据结构展示,都会在这里清晰地呈现出来。如果代码中存在错误,错误信息也会在此处详细显示,帮助你快速定位和解决问题,就像是一个精准的结果反馈器,让你对代码的执行情况一目了然。
    • 执行按钮:通常是一个醒目的绿色 “Run” 按钮,位于界面的上方或其他显眼位置。点击这个按钮,就如同启动了一台代码执行引擎,它会迅速编译和运行你在代码编辑区编写的代码,让你能够即时看到代码的运行效果,实现了代码编写与执行的快速交互,极大地提高了开发效率。
    • 附加功能:这是一个隐藏在界面中的宝藏区域,包含了许多实用的功能。例如,你可以通过相关设置选项来切换.NET 框架版本,满足不同项目对框架版本的需求,无论是旧版本的兼容性测试,还是新版本的特性探索,都能轻松实现;还能通过 NuGet 包管理功能添加外部库,为你的代码注入更多的功能和活力,让你能够快速使用各种成熟的代码库,避免重复造轮子,大大拓展了代码的能力边界。

(二)编写 “Hello, World!” 代码

  1. 展示代码:下面是实现 “Hello, World!” 功能的完整 C# 代码:
using System;

public class Program
{
    public static void Main()
    {
        Console.WriteLine("Hello, World!");
    }
}
  1. 代码解释
    • using System;:这行代码的作用是引入 System 命名空间。System 命名空间是.NET 框架中非常基础且重要的一个命名空间,它包含了许多常用的类型和功能,例如基本的数据类型(如int、string等)、输入输出操作(如Console.WriteLine)、异常处理等。通过引入这个命名空间,我们在代码中就可以直接使用其中的类型和方法,而无需使用完整的命名空间路径,简化了代码的书写。例如,如果没有引入System命名空间,要使用Console.WriteLine方法,就需要写成System.Console.WriteLine,这样会使代码变得冗长和繁琐。
    • public class Program:这里定义了一个名为Program的公共类。在 C# 中,类是一种重要的编程结构,它可以将相关的数据和行为封装在一起。public关键字表示这个类是公共的,其他代码可以访问它。通常,我们会将程序的入口点(即Main方法)放在一个类中,这里的Program类就是我们这个简单程序的载体。
    • public static void Main():Main方法是 C# 程序的入口点,程序从这里开始执行。public表示这个方法是公共的,其他代码可以调用它;static表示这是一个静态方法,不需要创建类的实例就可以直接调用;void表示这个方法没有返回值。在Main方法中,我们编写程序的主要逻辑代码,这里就是输出 “Hello, World!” 这句话。
    • Console.WriteLine(“Hello, World!”);:这行代码调用了Console类的WriteLine方法,用于在控制台输出 “Hello, World!” 这个字符串。Console类是System命名空间中的一个类,专门用于处理控制台的输入输出操作。WriteLine方法会将指定的字符串输出到控制台,并在输出后换行。如果我们使用Console.Write方法,输出的字符串就不会换行。

(三)在.NET Fiddle 上运行代码

  1. 粘贴代码:将上述编写好的 “Hello, World!” 代码复制,然后粘贴到.NET Fiddle 的代码编辑区中。这个过程就像是将精心准备的食材放入烹饪锅中,等待着被加工成美味的 “代码大餐”。在粘贴时,要确保代码完整无误,避免出现遗漏或错误的字符,否则可能会导致代码无法正常运行。

  2. 点击 “Run” 按钮:在代码编辑区的上方,找到那个醒目的绿色 “Run” 按钮,然后果断地点击它。这一步就像是按下了启动键,触发了代码的编译和执行过程。点击后,.NET Fiddle 会迅速对代码进行分析和编译,将我们编写的代码转化为计算机能够理解和执行的指令。

  3. 查看结果:点击 “Run” 按钮后,稍等片刻,在输出面板中就会显示出代码的运行结果。你会看到 “Hello, World!” 这几个字清晰地呈现在那里,这就是我们的代码成功运行的标志。如果代码存在语法错误或其他问题,输出面板会显示详细的错误信息,帮助我们找出问题所在。例如,如果我们不小心将Console.WriteLine写成了Console.WriteLin,输出面板会提示找不到WriteLin方法,让我们能够及时发现并修正错误。通过这样的方式,我们可以快速验证代码的正确性,不断调整和优化代码,直到达到预期的效果。

进阶功能大揭秘

(一)添加外部库

在实际开发中,我们常常需要借助各种外部库来扩展代码的功能。.NET Fiddle 提供了便捷的 NuGet 包管理功能,让我们能够轻松添加所需的外部库。以引入Newtonsoft.Json库实现 JSON 序列化和反序列化功能为例,具体步骤如下:

  1. 打开.NET Fiddle:在浏览器中访问https://dotnetfiddle.net/ ,进入.NET Fiddle 的主界面。

  2. 定位添加库的入口:在界面中找到并点击与添加外部库相关的按钮或选项,通常会有明显的标识,比如 “Add Packages” 或者类似的字样,点击它会弹出一个用于搜索和添加包的窗口。

  3. 搜索Newtonsoft.Json:在弹出的窗口中,输入 “Newtonsoft.Json”,然后按下回车键或点击搜索按钮。.NET Fiddle 会迅速在 NuGet 包源中搜索相关的库,并将搜索结果展示出来。

  4. 选择并添加库:在搜索结果中,找到Newtonsoft.Json库对应的条目,点击它,然后选择合适的版本(如果有多个版本可供选择),最后点击 “Add” 按钮,将该库添加到我们的项目中。添加完成后,我们就可以在代码中使用该库提供的功能了。

  5. 编写使用库的代码:下面是一段完整的代码示例,展示如何使用Newtonsoft.Json库进行 JSON 序列化和反序列化:

using System;
using Newtonsoft.Json;
using System.Collections.Generic;

public class Program
{
    public static void Main()
    {
        // 创建一个学生列表
        var students = new List<Student>
        {
            new Student("追逐时光者", 20),
            new Student("大姚", 22),
            new Student("小袁", 18)
        };

        // 将学生列表序列化为JSON字符串
        string json = JsonConvert.SerializeObject(students);
        Console.WriteLine("将学生对象序列化为JSON字符串:" + json);

        // 将JSON字符串反序列化为学生对象列表
        var deserializedStudents = JsonConvert.DeserializeObject<List<Student>>(json);
        Console.WriteLine("将JSON字符串反序列化为学生对象:");
        foreach (var item in deserializedStudents)
        {
            Console.WriteLine($"Name:{item.Name},Age:{item.Age}");
        }
    }
}

public class Student
{
    public Student(string name, int age)
    {
        Name = name;
        Age = age;
    }

    public string Name { get; set; }
    public int Age { get; set; }
}
  1. 运行代码:点击界面上的 “Run” 按钮,运行上述代码。在输出面板中,我们可以看到成功将学生对象序列化为 JSON 字符串,以及将 JSON 字符串反序列化为学生对象的结果。通过这个示例,我们可以清晰地看到添加外部库后,.NET Fiddle 能够轻松实现复杂的功能,大大拓展了代码的应用场景。无论是处理数据传输、存储,还是与其他系统进行数据交互,JSON 序列化和反序列化都是非常常用的操作,而Newtonsoft.Json库提供了强大且便捷的实现方式,借助.NET Fiddle 的外部库添加功能,我们能够快速将其应用到自己的代码中 。

(二)切换.NET 框架版本

  1. 切换的意义:不同的项目可能基于不同的.NET 框架版本进行开发,切换.NET 框架版本可以满足以下需求:
    • 兼容性测试:当我们需要确保代码在不同版本的.NET 框架上都能正常运行时,就需要切换框架版本进行测试。例如,我们开发了一个通用的类库,希望它既能在较新的.NET Core 3.1 上运行,也能在.NET Framework 4.7.2 上使用,这时就可以通过切换.NET Fiddle 的框架版本来验证代码的兼容性。
    • 体验新特性:随着.NET 框架的不断发展,每个新版本都会引入一些新的功能和特性。通过切换到新版本的框架,我们可以在.NET Fiddle 上快速尝试这些新特性,了解它们的用法和优势,为实际项目开发提供参考。比如.NET 5 引入了统一的运行时和开发体验,.NET 6 在性能和功能上又有了进一步的提升,我们可以通过切换版本来体验这些变化。
    • 适配旧项目:如果我们需要维护一些基于旧版本.NET 框架的项目,在.NET Fiddle 上切换到相应的旧版本框架,可以方便地对旧代码进行调试和修改,避免因为框架版本不匹配而导致的问题。
  1. 切换操作:在.NET Fiddle 上切换.NET 框架版本的步骤如下:
    • 找到版本切换选项:在.NET Fiddle 的界面中,查找与.NET 框架版本相关的设置区域。通常,这个区域会在界面的某个角落,可能是一个下拉菜单或者一个专门的设置按钮,上面会标有 “.NET Version” 或者类似的字样。
    • 选择目标版本:点击版本切换选项后,会弹出一个包含各种.NET 框架版本的列表,从.NET 4.7.2 到.NET 8 等不同版本都在其中。我们根据自己的需求,从中选择想要切换到的版本。例如,如果我们想测试代码在.NET Core 3.1 上的运行情况,就选择 “NET Core 3.1” 这个选项。
  1. 展示不同版本下代码的运行情况:为了更直观地展示不同版本下代码的运行情况,我们以一个简单的代码示例来进行说明。假设我们有一个计算斐波那契数列的方法,代码如下:
using System;

public class Program
{
    public static void Main()
    {
        int n = 10;
        Console.WriteLine($"斐波那契数列的第{n}项是:{Fibonacci(n)}");
    }

    public static int Fibonacci(int n)
    {
        if (n == 0 || n == 1)
        {
            return n;
        }
        return Fibonacci(n - 1) + Fibonacci(n - 2);
    }
}

当我们在.NET Fiddle 上分别切换到不同的.NET 框架版本(如.NET Framework 4.7.2 和.NET 6)并运行这段代码时,会发现:

  • 在.NET Framework 4.7.2 版本下,代码能够正常运行,准确地输出斐波那契数列的第 10 项的值。这个版本的框架已经非常成熟,对于一些传统的桌面应用和 Web 应用开发,仍然被广泛使用,许多基于它开发的项目都在稳定运行。

  • 在.NET 6 版本下,代码同样能够正确运行,并且由于.NET 6 在性能优化和编译技术上的改进,可能会发现代码的执行速度更快,尤其是在处理较大的n值时,这种性能提升可能会更加明显。这体现了新版本框架在功能和性能上的不断进步,为开发者提供了更好的开发和运行体验。通过这样的对比,我们可以更清楚地了解不同版本.NET 框架的特点和差异,从而在实际开发中根据项目的需求选择最合适的框架版本。

(三)代码分享

  1. 分享的方法和优势:在.NET Fiddle 中,代码分享是一项非常实用的功能,它为开发者之间的协作和交流提供了极大的便利。分享代码的方法非常简单,主要有以下优势:
    • 方便协作:当团队成员共同开发一个项目时,可能需要对某个功能模块的代码进行讨论和优化。通过分享在.NET Fiddle 上编写的代码链接,团队成员可以直接在浏览器中查看和运行代码,无需在本地搭建相同的开发环境,大大提高了协作效率。例如,在讨论一个算法的实现时,开发者可以将自己在.NET Fiddle 上编写的测试代码分享给其他成员,大家可以在链接中直接运行代码,提出修改建议,快速迭代代码。
    • 技术交流:在技术社区或者论坛中,当我们想要分享自己的编程经验、解决问题的思路时,通过分享代码链接,可以让其他开发者更直观地理解我们的代码逻辑和实现方法。比如,我们在解决一个复杂的数据库查询问题后,将在.NET Fiddle 上编写的查询代码分享出去,其他开发者可以直接运行代码,学习其中的技巧,同时也可以提出不同的解决方案,促进技术的交流和进步。
    • 展示成果:对于个人开发者来说,.NET Fiddle 的代码分享功能可以作为展示自己技术能力的平台。我们可以将自己开发的一些有趣的项目、实用的工具代码分享出去,让更多的人看到自己的作品,增加个人的技术影响力。例如,开发了一个简单的图像识别小程序,通过分享代码链接,向潜在的合作伙伴或者雇主展示自己的技术实力。
  1. 生成代码链接的方式:在.NET Fiddle 中生成代码链接非常简单,具体步骤如下:
    • 编写并运行代码:首先,在.NET Fiddle 的代码编辑区中编写好我们想要分享的代码,并点击 “Run” 按钮确保代码能够正常运行,得到预期的结果。
    • 找到分享按钮:在界面上找到 “Share” 按钮,这个按钮通常会在比较显眼的位置,比如代码编辑区的上方或者下方。
    • 生成链接:点击 “Share” 按钮后,.NET Fiddle 会自动生成一个唯一的代码链接。这个链接包含了我们编写的代码、选择的.NET 框架版本、添加的外部库等所有相关信息。我们可以直接复制这个链接,然后将其分享给他人。
  1. 通过分享链接与他人协作或展示代码示例:当我们将生成的代码链接分享给他人后,接收者只需点击链接,即可在浏览器中打开一个与我们当时编写代码时一模一样的界面。他们可以在这个界面中查看代码、运行代码,甚至可以对代码进行修改和调试。例如,在团队协作中,成员 A 将一个关于用户认证功能的代码链接分享给成员 B。成员 B 点击链接后,看到代码的实现逻辑,发现其中存在一个安全漏洞。于是,成员 B 在界面中直接对代码进行修改,添加了更严格的密码验证规则,然后将修改后的代码再次分享给团队成员,大家一起讨论修改后的代码是否满足需求。通过这样的方式,实现了高效的代码协作和交流。在展示代码示例时,比如在技术博客中分享一个关于文件读写操作的代码示例,我们可以将生成的代码链接放在博客文章中。读者点击链接后,就可以在.NET Fiddle 中直接运行代码,看到文件读写的实际效果,更好地理解代码的功能和用途。

常见问题与解决方案

(一)运行错误排查

在使用.NET Fiddle 过程中,难免会遇到各种运行错误,以下是一些常见错误及对应的排查和解决方法:

  1. 语法错误:这是最常见的错误类型,通常是由于代码书写不规范导致的。比如,遗漏了分号、括号不匹配、关键字拼写错误等。例如,将Console.WriteLine写成Console.WriteLin,这就会导致语法错误。排查方法是仔细查看输出面板中的错误提示,错误提示会指出错误发生的位置和原因。同时,.NET Fiddle 的代码编辑区会对语法错误进行标记,通常会用红色波浪线标识出有问题的代码行。解决方法就是根据错误提示,修正代码中的语法错误,确保代码的正确性。

  2. 库引用错误:当我们添加外部库后,如果库引用不正确,可能会导致运行时找不到相关的类型或方法。例如,在添加Newtonsoft.Json库时,如果版本不兼容或者添加过程出现问题,可能会在使用JsonConvert类时提示找不到该类型。排查时,首先检查添加库的步骤是否正确,是否成功添加了所需的库版本。可以在代码编辑区的相关引用部分查看是否有错误提示,也可以尝试重新添加库。解决方法是重新确认库的版本和添加方式,确保库被正确引用。如果是版本问题,可以尝试更换其他兼容的版本。

  3. 命名空间问题:如果没有正确引入所需的命名空间,也会导致无法识别相关的类型或方法。比如,在使用System.IO命名空间中的文件操作类时,如果没有添加using System.IO;这行代码,就会出现类型无法识别的错误。排查时,检查代码中使用的类型是否需要引入特定的命名空间,并且确认是否已经正确引入。解决方法是在代码开头添加相应的using语句,引入所需的命名空间。

(二)功能使用疑问解答

  1. 如何正确添加外部库:在添加外部库时,有些用户可能会遇到找不到库、添加失败等问题。首先,要确保输入的库名称准确无误,因为 NuGet 包源中库的名称是唯一标识。在搜索库时,尽量使用完整的名称或常见的别名,以提高搜索的准确性。如果添加失败,可能是网络问题或者包源配置有误。可以检查网络连接是否正常,尝试更换网络环境后再次添加。另外,也可以检查.NET Fiddle 的包源设置,确保其指向的是正确的 NuGet 包源。如果仍然无法解决,可以在相关的技术论坛或社区寻求帮助,查看是否有其他用户遇到过类似问题并已解决。

  2. 如何选择合适的.NET 框架版本:选择.NET 框架版本需要综合考虑多个因素。如果是维护旧项目,需要根据旧项目的原始框架版本来选择,以确保代码的兼容性。例如,旧项目是基于.NET Framework 4.0 开发的,那么在.NET Fiddle 中也选择该版本进行测试和调试,避免因框架版本差异导致的不兼容问题。如果是学习新技术或者尝试新功能,建议选择较新的框架版本,如.NET 6 或.NET 7,这些版本通常具有更好的性能和更多的新特性,可以帮助我们更好地了解和应用最新的技术。同时,还要考虑目标运行环境对框架版本的支持情况。比如,目标运行环境是 Windows 7 系统,那么就需要注意某些较新的框架版本可能在该系统上存在兼容性问题,此时可能需要选择更合适的版本,如.NET Framework 4.5,它在 Windows 7 上原生支持,无需额外补丁 。在选择框架版本时,还可以参考微软官方的文档和技术社区的讨论,了解不同版本的特点和适用场景,以便做出更合适的选择。

总结与展望

.NET Fiddle 作为一款功能强大的在线神器,为.NET 开发者提供了便捷高效的编程体验。它的主要功能涵盖了代码的在线编辑、即时运行、外部库添加、框架版本切换以及代码分享等多个方面。通过简单的操作,我们能够在浏览器中快速编写和测试代码,无需复杂的本地环境搭建;灵活添加外部库,拓展代码的功能边界;根据需求切换不同的.NET 框架版本,满足项目的兼容性和新特性探索需求;还能轻松分享代码链接,促进团队协作与技术交流。

在实际开发中,无论是验证一个新的算法思路、测试某个功能的实现,还是向他人展示代码示例,.NET Fiddle 都能发挥巨大的作用。它就像一把万能钥匙,打开了高效开发的大门,让开发者能够更加专注于代码本身,而无需被环境配置等繁琐事务所困扰。

展望未来,随着.NET 技术的不断发展和创新,.NET Fiddle 也有望迎来更多的优化和升级。在功能上,或许会进一步加强与最新.NET 版本特性的结合,提供更丰富的模板和示例代码,帮助开发者更快地上手新功能;在性能方面,可能会持续优化代码的编译和运行速度,提升用户体验;在社区建设方面,可能会吸引更多的开发者参与,形成更加活跃的交流氛围,促进代码的共享和创新。希望广大.NET 开发者能够积极尝试使用.NET Fiddle,充分发挥它的优势,为自己的开发工作增添助力,共同见证和推动.NET Fiddle 在未来的发展与进步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2294079.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring MVC ONE

第一章&#xff1a;Java web的发展历史 一.Model I和Model II 1.Model I开发模式 Model1的开发模式是&#xff1a;JSPJavaBean的模式&#xff0c;它的核心是Jsp页面&#xff0c;在这个页面中&#xff0c;Jsp页面负责整合页面和JavaBean&#xff08;业务逻辑&#xff09;&…

【Git】一、初识Git Git基本操作详解

文章目录 学习目标Ⅰ. 初始 Git&#x1f4a5;注意事项 Ⅱ. Git 安装Linux-centos安装Git Ⅲ. Git基本操作一、创建git本地仓库 -- git init二、配置 Git -- git config三、认识工作区、暂存区、版本库① 工作区② 暂存区③ 版本库④ 三者的关系 四、添加、提交更改、查看提交日…

SQL 秒变三线表 sql导出三线表

&#x1f3af;SQL 秒变三线表&#xff0c;校园小助手超神啦 宝子们&#xff0c;搞数据分析、写论文的时候&#xff0c;从 SQL 里导出数据做成三线表是不是特别让人头疼&#x1f629; 手动调整格式&#xff0c;不仅繁琐&#xff0c;还容易出错&#xff0c;分分钟把人逼疯&#…

PySpark学习笔记5-SparkSQL

sparkSql的数据抽象有两种。 一类是data set适用于java和Scala 一类是data frame适用于java&#xff0c;Scala&#xff0c;python 将r d d转换为data frame #方式一 df spark.createDataFrame(rdd,schema[name,age]) #方式二 schema Structtype(). add(id,integertype(),nu…

如何利用maven更优雅的打包

最近在客户现场部署项目&#xff0c;有两套环境&#xff0c;无法连接互联网&#xff0c;两套环境之间也是完全隔离&#xff0c;于是问题就来了&#xff0c;每次都要远程到公司电脑改完代码&#xff0c;打包&#xff0c;通过网盘&#xff08;如果没有会员&#xff0c;上传下载慢…

图像分类与目标检测算法

在计算机视觉领域&#xff0c;图像分类与目标检测是两项至关重要的技术。它们通过对图像进行深入解析和理解&#xff0c;为各种应用场景提供了强大的支持。本文将详细介绍这两项技术的算法原理、技术进展以及当前的落地应用。 一、图像分类算法 图像分类是指将输入的图像划分为…

HAL库 Systick定时器 基于STM32F103EZT6 野火霸道,可做参考

目录 1.时钟选择(这里选择高速外部时钟) ​编辑 2.调试模式和时基源选择: 3.LED的GPIO配置 这里用板子的红灯PB5 4.工程配置 5.1ms的systick中断实现led闪烁 源码: 6.修改systick的中断频率 7.systick定时原理 SysTick 定时器的工作原理 中断触发机制 HAL_SYSTICK_Co…

Spring Boot常用注解深度解析:从入门到精通

今天&#xff0c;这篇文章带你将深入理解Spring Boot中30常用注解&#xff0c;通过代码示例和关系图&#xff0c;帮助你彻底掌握Spring核心注解的使用场景和内在联系。 一、启动类与核心注解 1.1 SpringBootApplication 组合注解&#xff1a; SpringBootApplication Confi…

【基于SprintBoot+Mybatis+Mysql】电脑商城项目之用户注册

&#x1f9f8;安清h&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;【计算机网络】【Mybatis篇】 &#x1f6a6;作者简介&#xff1a;一个有趣爱睡觉的intp&#xff0c;期待和更多人分享自己所学知识的真诚大学生。 目录 &#x1f3af;项目基本介绍 &#x1f6a6;项…

力扣1022. 从根到叶的二进制数之和(二叉树的遍历思想解决)

Problem: 1022. 从根到叶的二进制数之和 文章目录 题目描述思路复杂度Code 题目描述 思路 遍历思想(利用二叉树的先序遍历) 1.在先序遍历的过程中&#xff0c;用一个变量path记录并更新其经过的路径上的值&#xff0c;当遇到根节点时再将其加到结果值res上&#xff1b; 2.该题…

Redis背景介绍

⭐️前言⭐️ 本文主要做Redis相关背景介绍&#xff0c;包括核心能力、重要特性和使用场景。 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f349;博主将持续更新学习记录收获&#xff0c;友友们有任何问题可以在评论区留言 &#x1f349;博客中涉及源码及博主…

LabVIEW图像采集与应变场测量系统

开发了一种基于LabVIEW的图像采集与应变场测量系统&#xff0c;提供一种高精度、非接触式的测量技术&#xff0c;用于监测物体的全场位移和应变。系统整合了实时监控、数据记录和自动对焦等功能&#xff0c;适用于工程应用和科学研究。 项目背景 传统的位移和应变测量技术往往…

html基本结构和常见元素

html5文档基本结构 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><title>文档标题</title> </head> <body>文档正文部分 </body> </html> html文档可分为文档头和文档体…

upload labs靶场

upload labs靶场 注意:本人关卡后面似乎相比正常的关卡少了一关&#xff0c;所以每次关卡名字都是1才可以和正常关卡在同一关 一.个人信息 个人名称&#xff1a;张嘉玮 二.解题情况 三.解题过程 题目&#xff1a;up load labs靶场 pass 1前后端 思路及解题&#xff1a;…

手写MVVM框架-环境搭建

项目使用 webpack 进行进行构建&#xff0c;初始化步骤如下: 1.创建npm项目执行npm init 一直下一步就行 2.安装webpack、webpack-cli、webpack-dev-server&#xff0c;html-webpack-plugin npm i -D webpack webpack-cli webpack-dev-server html-webpack-plugin 3.配置webpac…

论文阅读:Realistic Noise Synthesis with Diffusion Models

这篇文章是 2025 AAAI 的一篇工作&#xff0c;主要介绍的是用扩散模型实现对真实噪声的仿真模拟 Abstract 深度去噪模型需要大量来自现实世界的训练数据&#xff0c;而获取这些数据颇具挑战性。当前的噪声合成技术难以准确模拟复杂的噪声分布。我们提出一种新颖的逼真噪声合成…

JVM监控和管理工具

基础故障处理工具 jps jps(JVM Process Status Tool)&#xff1a;Java虚拟机进程状态工具 功能 1&#xff1a;列出正在运行的虚拟机进程 2&#xff1a;显示虚拟机执行主类(main()方法所在的类) 3&#xff1a;显示进程ID(PID&#xff0c;Process Identifier) 命令格式 jps […

【TensorFlow】T1:实现mnist手写数字识别

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 1、设置GPU import tensorflow as tf gpus tf.config.list_physical_devices("GPU")if gpus:gpu0 gpus[0]tf.config.experimental.set_memory_g…

【ArcGIS_Python】使用arcpy脚本将shape数据转换为三维白膜数据

说明&#xff1a; 该专栏之前的文章中python脚本使用的是ArcMap10.6自带的arcpy&#xff08;好几年前的文章&#xff09;&#xff0c;从本篇开始使用的是ArcGIS Pro 3.3.2版本自带的arcpy&#xff0c;需要注意不同版本对应的arcpy函数是存在差异的 数据准备&#xff1a;准备一…

动静态库的学习

动静态库中&#xff0c;不需要包含main函数 文件分为内存级(被打开的)文件和磁盘级文件 库 每个程序都要依赖很多基础的底层库&#xff0c;本质上来说库是一种可执行代码的二进制形式&#xff0c;可以被载入内存执行 静态库 linux .a windows .lib 动态库 linux .…