首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用 Optional 模式解决 C# 中烦人的空引用问题

在我看来,这个视频实际上在告诉我们如何使用当时推出的 C# 的 Nullable 特性,也就是我们常见的 ?,也就是这种形式的代码:string? firstName = null。...string.Empty 这种写法了,虽然这种写法也还行,可以实现我们的需求; 我希望在可能出现 null reference 异常的地方会直接编译不通过,而不是在 IDE 中的波浪下划线警告。...因为很多人是不看警告的,我在很急的时候也常常忽略警告,但这恰恰是 bug 之源。 最后,我希望尽可能减少代码中的 null,甚至干掉业务代码中的 null。我觉得这样会让我的代码人生更加快乐。 4....Optional 模式的实现 我听说 JVM 系列的语言,还有 Rust 等,都使用了 Optional 模式来避免上述的问题。它似乎是来源于函数式编程的一个模式。...v=gpOQl2q0PTU 这个仓库包含了使用 C# 实现的 Optional 模式。Optional 模式提供了一种更优雅的方式来处理可空值,避免了使用 null 值。

94640
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JavaScript的原型继承在使用中存在的安全问题

    JavaScript的原型很多人都知道也很好用,但是很多人在使用原型继承中导致的安全问题却很少人知道,接下来我们就来好好了解一下。...在真实开发中,我们经常会在代码中使用Property accessors 属性访问器,并且使用用户输入的参数去访问某个对象的属性。...这看起来可能是一个很稀疏平常的操作,但是往往在这个过程中我们的代码就已经产生了一个很大的安全漏洞!!!为什么这样写代码会产生安全问题?...如果在客户端上,这可能问题不大,如果这是在服务器上,那就可能会为黑客攻击提供漏洞。...在代码中减少属性访问器的使用尽可能使用.的方式去访问对象的属性或者使用 Map或Set,来代替我们的对象检查对象的原型链,查看新创建对象的原型是否被恶意添加了原本不该有的属性,或者属性被修改检查用户的输入

    19211

    【愚公系列】2023年11月 WPF控件专题 Track控件详解

    自定义控件则允许开发人员使用XAML和C#等编程语言来创建个性化的用户界面元素。自定义控件可以根据需求提供更多的功能和自定义化选项,以及更好的用户体验。...PreviewMouseMove:设置当用户在Track上移动鼠标时发生的事件处理程序Template:设置用于自定义Track外观的控件模板2.常用场景Track控件(或称为滑动条、滑块)在WPF中常用于以下场景...它具有良好的可定制性,可以根据不同的需求进行定制化。3.具体案例Track控件是WPF中用于创建可滑动滑块的控件。下面是一个简单的案例,演示如何使用Track控件来创建一个可调节音量大小的控件。...Invoke(this, new PropertyChangedEventArgs(propertyName)); }}在构造函数中,我们将Volume属性的初始值设置为50。...最后,在MainWindow.xaml.cs文件中,我们将ViewModel实例化并将它绑定到MainWindow的DataContext中:public partial class MainWindow

    38811

    定制你的多模态模型:Yo’LLaVA 模型在视觉问题解答中的贡献 !

    为了克服这一限制,引入了参数高效微调(PEFT)方法,这些方法使用很少的可训练参数将这些模型适配到各种下游任务。 主要有两个方向: (1)在模型的现有层中引入额外的可训练参数。...)没有任何文本标签或标题的情况下,作者的目标是将_这个主题_嵌入到一个预训练的LMM(在作者的例子中,是LLaVA [2; 10; 35])中,以便用户和模型可以使用该主题的标识符(例如,)进行交流,同时保留广泛的预训练知识...然而,仅使用识别数据进行学习并不能让模型与用户就识别之外的内容进行交流。例如,模型可能正确回答是否出现在图像中,但对于其他问题(例如,“详细描述”,见表7)可能会遇到困难。...因此,为了鼓励模型将主体的视觉属性提炼到可学习的个性化提示中,作者在训练期间排除了,这导致仅使用进行训练(即,在实践中作者在等式1中省略图像)。...具体示例在附录H中给出。作者在表5中报告了正确回答问题的准确性。 Yo'LLaVA在视觉问答方面是领先的方法(即0.929),其次是使用人类编写的个性化提示的LLaVA [2]。

    16810

    Git在Xcode中的配置与使用常见问题总结

    书接上回提出的Git在Xcode中的配置与使用常见问题4个问题 问题1,如何在Xcode中创建代码库,并添加和提交代码到代码库? 问题2,如何在Xcode中提交推送给远程服务器代码库?...问题3,如何在Xcode中克隆远程服务器代码库到本地? 问题4,如何使用Xcode获取远程代码库数据,并解决冲突问题?...2、问题2 本地有代码库提交推送给远程服务器代码库,在Xcode中可以通过菜单File→Source Control→Push…进行推送,但是如果是第一次访问,会出现对话框,没有可以推送的远程服务器代码库名...在Xcode中可以通过菜单Window → Organizer,选中Repositories→myrepo→Remotes,点击左下角的“Add Remote”按钮,弹出对话框,在Remote Name...3、问题3 这 个问题是从服务器代码库克隆到本地,首先需要在Xcode中添加一个远程代码库,需要通过菜单Window → Organizer进入到Repositories画面,点选左下角的“+”按钮,选择

    3.6K110

    课程上线 -“新手入门 : Windows Phone 8.1 开发”

    ;第四,介绍XAML和C#是如何把事件处理进行关联的。...设计应用UI界面、使用C#来处理后台事件,并且在模拟器中进行调试。...Universal的Tip Calculator应用程序,包括使用类似的XAML代码设计两个平台的应用页面,该应用程序可以部署到Windows Phone手机上或者是Windows设备中,也可以在模拟器中进行调试...并知道针对不同的部署环境,它有几个不同的版本;其次,了解模拟器的功能,包括如何使用键盘快捷键来模拟输入;最后,了解缩放、旋转屏幕的方法,以及加速度传感器、GPS等功能的模拟。...Module 28: XAML动画 Module Description: 本次课程主要介绍了在XAML和C#中设计动画的两种方法,主要是在Storyboard中定义,通过Begin方法来触发动画。

    1.4K80

    在应用大模型的场景中,我们该如何使用语义搜索?

    然而,由于大语言模型中存在的过时、不准确、幻觉、一本正经的胡说八道、基于互联网数据训练这些缺点,因此,直接使用大语言模型生成的内容在商业场景中,特别是涉及到一些专业领域以及私有数据的场景,是无法提供准确或有价值的信息的...图片 正确合理的使用embedding模型有哪些约束? 要使用向量搜索,我们就必须首先解决文档和query的向量化问题。也就是说,我们需要知道如何选择和使用一个embedding模型。...由于不同模型在训练时所使用的数据集和语料库可能存在偏差,因此在特定领域中表现较好的模型可能对其他领域的文本处理效果不佳。 数据量和多样性:嵌入模型的性能通常受到训练数据量和多样性的影响。...如果某个模型在训练时使用的数据量较少或者数据不够多样化,它可能对特定领域的文本理解能力有限。相反,如果某个模型在训练时使用的数据集较大且具有广泛的覆盖范围,它通常会在不同领域中表现更好。...如果自己使用机器学习平台进行部署,则需要注意资源消耗的问题,在Elasticsearch中,模型是在线程之间共享的。

    3.9K122

    使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题

    但是,使用不当又会遇到各种问题,本文收集使用过程中可能会遇到的各种问题,帮助你解决掉它们。..."); object GetSomeInstance() { return 诡异的东西; } 我们的 GetSomeInstance 明明返回的是 object,我们却可以调用真实类中的方法...接下来讲述使用 dynamic 过程中可能会遇到的问题和解决方法。 编译错误:缺少编译器要求的成员 你初次在你的项目中引入 dynamic 关键字后,会出现编译错误,提示 “缺少编译器要求的成员”。...{0} 是类型名称,而 {1} 是使用 dynamic 访问的属性或者方法的名称。...---- 参考资料 c# - Why a Microsoft.CSharp.RuntimeBinder.RuntimeBinderException if the invoked method is there

    78130

    【愚公系列】2023年09月 WPF控件专题 Slider控件详解

    自定义控件则允许开发人员使用XAML和C#等编程语言来创建个性化的用户界面元素。自定义控件可以根据需求提供更多的功能和自定义化选项,以及更好的用户体验。...一、Slider控件详解 WPF中的Slider控件是一个简单的控件,它允许您通过滑动它的滑块来设置值。它的使用非常灵活,可以用来控制音量、亮度、视觉效果等。...绑定值: 您可以使用数据绑定将Slider控件的值绑定到您的数据模型中的属性。...2.常用场景 WPF中Slider控件常用于以下场景: 调整音量:在音频播放器或视频播放器中使用Slider控件来调节音量大小。...调整大小:在图形编辑器中,可以使用Slider控件来调整图形的大小。 数据选择:在数据可视化应用程序中,可以使用Slider控件来选择特定数据范围。

    1.1K172

    在Expression Blend中使用XAML建立3D应用程序

    (WPF)的3D特性,首先我们导入一个已经建立好的3D模型到程序中,使用动画让其旋转。...练习一 使用静态3D模型(共4个任务) 在本练习中,你将会导入一个已经建立好的3D模型,并使用Viewport3D对象把它显示出来,然后使用动画让他旋转起来。最后,用户可以使用鼠标旋转这个模型。...在本练习中,我们将会使用一个用这种方式建立的3D模型,即一个XAML文件。并将其导入Blend中。...4.在Source\Exercise1子文件中,你会看到一个叫做Model.xaml的文件,它包含了你将要使用的3D模型。...(WpfLogoOR12是模型中的一个标签,代表logo模型整体) 2.运行程序,logo模型会自动的发生反复旋转。 任务4 可交互的旋转模型。 在本练习的最后一个任务中,我们将允许使用鼠标旋转模型。

    68590

    ToolBar控件在C#开发APP中的使用方式【附案例源码】——Smobiler移动开发平台

    该界面为仿淘宝UI制作的一个简单的UI模板,源码获取方式请拉至文章末尾。 特色属性 属性 属性说明 Direction(相对布局) 容器主轴方向。 Flex(相对布局) 比例因子。...控件使用 下文的教学内容仅针对【效果演示】中的例子 1. 设置工具栏数据 ? ?  2. 设置工具栏ToolBarItem消息数 ? 3. 设置默认选中项、选中项背景色和文字颜色 ? 4....在事件中,用e.Name判断当前点击按钮,来进行对应操作     C#: private void toolBar1_ToolbarItemClick(object sender, ToolbarClickEventArgs...mod=viewthread&tid=11702 Smobiler designer地址:https://www.smobiler.com/download.html 该toolbar部分的代码在UI...Demo中 MainMenu.cs 产品原型图: ?

    1.3K20

    引脚数据提示编辑代码并继续调试(C#,VB,C ++)编辑XAML代码并继续调试调试难以重现的问题配置数据以显示在调试器中更改执行流程跟踪范围外的对象(C#,Visual Basic)查看函数的返回值

    编辑XAML代码并继续调试 要在调试会话期间修改XAML代码,请参阅使用XAML Hot Reload编写和调试运行的XAML代码。...调试难以重现的问题 如果在您的应用程序中重新创建特定状态很困难或很耗时,请考虑使用条件断点是否有帮助。...配置数据以显示在调试器中 对于C#,Visual Basic和C ++(仅C ++ / CLI代码),您可以使用DebuggerDisplay属性告诉调试器显示哪些信息。...跟踪范围外的对象(C#,Visual Basic) 使用诸如“监视”窗口之类的调试器窗口可以轻松查看变量。但是,当变量在“监视”窗口中超出范围时,您可能会注意到它是灰色的。...调试死锁和竞争条件 如果您需要调试多线程应用程序常见的问题,则通常有助于在调试时查看线程的位置。您可以使用在源代码中显示线程按钮轻松完成此操作。

    4.5K41

    Windows Runtime(WinRT) 揭秘

    微软在Windows 8 里打造了第三个 XAML-based UI 系统, WPF只是一个供 .NET 这个圈子使用的XAML UI系统 Silverlight只是给浏览器使用的XAML UI系统,Windows...所以在Win8上各类开发者依然可以用着不同的工具,但是却是使用着统一的模型。...异步API 微软认为,当给开发者一个使用同步和异步的API的选择的时候,开发者会选择简单的同步API,这在我们的.NET 编程实践中得到证明,.NET有很成熟的异步编程模型,还有特意为并行和异步处理而设计的...当你使用C#和VB,你使用的是完整的.NET框架。但是他们只暴露了一个较小的子集API给Windows 8的开发者。...声明,唯一限制的是,类必须是个密封的(除非你是在创建一个XAML UI组件,这种情形下这种限制是接触的) UI编程 当涉及到用户界面的开发的时候,你你可以使用HTML与CSS样式或使用XAML的你的应用程序的用户界面

    1.2K100

    Unity3d开发

    ,真正的模型应该是在专业的建模的软件 脚本语言 可以使用JavaScript也可以使用C#语言进行编写脚本 JavaScript之前已经又所了解,但是在之前也只是在网页的基础上进行学习在网页上如何使用JavaScript...如果想让脚本中定义的变量在unity3d中的inspector面板中显示,必须使用public修饰 语句 分支语句 if (表达式){ 语句1 }else{ 语句2 } ########...实例 实例1 使用CreatePrimitive方法创建Unity3D中系统自带的基本游戏对象 使用C#脚本在unity3D中创建一个Cube模型和一个Sphere模型,通过屏幕上方的按钮控制Cube...slider 用于显示拖曳区域的GUI样式 value 设置滑动条显示的值 rightValue 滑块右端的值 thumb 设置显示可多同的滑块的GUI样式 就是一个滑块在进度条上左右拖动,游戏中经常会有使用它来做英雄的血条...在世界坐标中的位置 Radius 半径 设置碰撞体的碰撞半径 Height 高度 设置碰撞体的碰撞高度 代码过程中的问题 在之前会又代码给mainCamera然后没有办法给那个脚本添加public定义的参数

    9.1K30

    WinUI 3 试玩报告

    什么是 WinUI 3 在微软 Build 2020 开发者大会上,WinUI 团队宣布可公开预览的 WinUI 3 Preview 1,它让开发人员可以在 Win32 中使用 WinUI。...这个项目还应该是解决方案的启动项目。运行这个项目后创建的应用会添加到开始菜单中,这点也和UWP一样。...到这里为止都和预期的一样,我之后还尝试了将 UWP 应用移植到 WinUI ,基本上只需要将 Windows.UI 命名空间改为 Microsoft.UI就可以了,XAML 和 C# 代码完全不用变。...而且 UWP 中代码的命名空间以 Windows.UI 开头,在 WinUI 3 中则 Microsoft.UI ,按着 Office 365 改名为 Microsoft 365、Bind Ads 改名为...()顺便一提,将测试代码中旋转的矩形减少为10个,WPF 的程序占用 32% GPU,而 WinUI 占用 70 多%。)

    3.1K30
    领券