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

贴心 | Visual Studio 2019 空引用异常的改进

空引用异常是最常见的程序错误之一。微软昨天发布的VS2019对此有了非常贴心的改进,我们来看看吧!...因此直接输出女朋友的名字会引发空引用异常: static void Main(string[] args) { var programmer = new Programmer(); Console.WriteLine...要注意的是,这个功能并不是.NET Framework或者.NET Core的,因此脱离了VS2019就看不到这个精准空引用的异常信息了。 ?...在公司的大型项目里,空引用异常通常很难排查,当一个class有几十个属性,又嵌套了别的class的时候,报一个空引用异常,究竟是哪个属性为null,我们曾经要花很长时间debug,现在有了VS2019,...可以一眼就能知道空引用的位置,节约了程序员宝贵的时间,进一步远离996!

1.3K80

itext7史上最全实战总结

配置文件 项目采用了Spring Cloud config所以配置在git上,仅仅研究itext7不需要用到数据库等功能,请直接运行PdfMain类的main方法,即可生成模拟的PDF报告 1.3....,上一页剩下的就留白了 可以看到Div,Paragraph可以设置很多属性,实际上我们常用的组件除了这两种,还有Table,Cell,List,他们大部分的属性都是一样的,只是部分属性只在部分组件起效果...如下是我的处理例子供参考,我把输入html内容样式进行了一定修改后转成itext7组件,这里特别提心,html转过来的itext7组件可能会不支持部分样式的修改,所以需要在html中进行css样式的添加...于是研究读取原pdf在原pdf上修改,二次渲染的时候填上页码及移动页面,主要代码如下,包括了读取中间文件,移动目录,添加每页页码 PdfReader reader = null; PdfWriter writer...总结 经过上述总结,我基本上把项目中的大多基本点和难点都概括进去了,初次用itext7写PDF的同学基本会遇到的问题基本都在上述这些,不理解的就把项目下下来运行Main方法慢慢调试,理解透我这个项目,还有其它问题那基本只能翻官网了

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

    与时俱进 | 博客现已运行在 .NET Core 3.0 及 Azure 上

    这是因为只有最新的16.3版的VS2019才完整支持开发.NET Core 3.0程序。因此请确保你先升级到VS2019 16.3。...事实上,我博客除了引用库依赖以外的用户代码里,已经没有任何 Json.NET 的痕迹了。...诸如此类的问题容易让你的代码瞬间爆炸,而你死活不知道为啥。 不抛出异常的代码也不一定意味着能像以前一样运行。例如,有一些特殊字符会被转义。这会让你的API用户或者前端程序员爆进ICU。...因为 obj2 的所有属性都是默认值或null。 这是因为我们传入的JSON字符串用了小写开头的属性名。...因此如果你直接将项目用默认编译形式部署在Azure上,会直接产生一个ANCM的启动异常,爆进ICU。解决方案是使用SCD部署。

    1K20

    C#10 新特性 解决了我七年前的困惑

    C#10 新特性 [调用方参数表达式] 解决了我七年前的困惑 目录 一、问题 二、转机 三、实践 1、演示输出各种形式的参数表达式 2、参数不符合条件时抛出异常 3、获取调用扩展方法的表达式 四、结语...然后用 VS2019 进行开发,代码都写完了,运行也没有报错,但是没有效果: 当然,这可能不能怪 VS2019,因为公众号文章开头是这样说的: 我们很高兴地宣布 C# 10 作为 .NET 6 和 Visual...message = null) { if (!...,且为 null 时抛出异常,微软公众号文章中提到了一个现成的方法: void MyMethod(object value) { ArgumentNullException.ThrowIfNull...四、结语 就像开头讲述的那样,实际上我昨天看到这个功能时还是挺激动的,虽然只是个不起眼的小功能,但是那种感觉就像是:一件尘封多年的悬案,因为时代的局限,基本被视作无法找到真相了,突然有一天,由于科技的进步

    38120

    C# 关于 PaddleOCRSharp OCR识别的疲劳测试

    DataCenter PaddleOCRSharp版本:2.2.0.0 数据库:Microsoft SQL Server 2016 .net版本: .netFramework4.0 或以上 开发工具:VS2019...C# 疲劳测试 添加组件库 打 VS2019 创建 WinForm 应用,在解决方案资源管理器中添加引用,成功后如下图: 添加 using PaddleOCRSharp; 引用,示例如下: using...System.Security.Cryptography; 方法设计 首先在 WinForm (实例假设为 Form1),中初化如下变量,代码如下: OCRModelConfig config = null...; OCRParameter oCRParameter = new OCRParameter(); PaddleOCREngine engi = null; OCRResult ocrResult =...,越小则文本框更靠近文本,在这里我们使用了默认值 1.6f 调用示例 在Form上假设有按钮 Button1,则其点击事件的调用代码示例如下: private void Button1_Click(

    29510

    手把手教你使用Java开发在线生成pdf文档

    一、介绍 在实际的业务开发的时候,研发人员往往会碰到很多这样的一些场景,需要提供相关的电子凭证信息给用户,例如网银/支付宝/微信购物支付的电子发票、订单的库存打印单、各种电子签署合同等等,以方便用户查看...iText目前有两套版本,分别是iText5和iText7。iText5应该是网上用的比较多的一个版本。iText5因为是很多开发者参与贡献代码,因此在一些规范和设计上存在不合理的地方。...iText7是后来官方针对iText5的重构,两个版本差别还是挺大的。不过在实际使用中,一般用到的都比较简单的 API,所以不用特别拘泥于使用哪个版本。...//定义pdf文件尺寸,采用A4横切 Document document = new Document(PageSize.A4, 25, 25, 15, 40);// 左、右、上、...; // 一次读入一行,直到读入null为文件结束 while ((tempString = reader.readLine()) !

    1.9K20

    C# 搭建一个基于.NET5的WPF入门项目

    概述 .NET5 发布已经有一阵子了,今天抽空体验一哈,搭建一个WPF项目实例,看看和传统的.NET Framework有什么区别!...开发环境:VS2019 WPF框架:Caliburn.Micro 版本4.0.173 .NET版本:.NET5.0 项目创建步骤详述 step1:打开vs2019 ,选择 创建新项目 step2:...创建流程基本和.NET Framework没啥区别,除了step2需要注意选择一个基于.NET CORE的项目模板。...解决方案 项目创建好以后,看一下变化 引用变成了依赖项,依赖项里面默认添加了分析器和框架两部分,如果从nuget添加了引用会增加个包,如下所示:这里我从NUGET上安装了CM框架 然后默认添加的...MainWindow.xaml和App.xam没变化,但是AssemblyInfo.cs变成了这样: CM框架搭建 这里没有任何变化,所以不展开讲解了,需要了解的可以看我之前发的项目实例,链接: 点击可以跳转

    67140

    Visual Studio 2019 惨痛 踩坑 经历 0x80070490 0x80040154

    我并不是程序员,用VS2019也就最近一个月的事,前段时间用VS2019跑腾讯云的API Explorer工具里的7种SDK时用它搞PythonSDK、Node.jsSDK、.NETSDK、C++SDK...2008R2的IIS是7.5 VS2019带的IIS是IIS10 Express,有可能是IIS10 .0 Express出问题了 卸载了系统自带的IIS和VS2019带的IIS10.0 Express...我IIS一直是好的,最近对VS2019干过的操作就是硬盘剩余空间不足,我把存放VS2019 package的将近5GB的文件夹%ProgramData%\Microsoft\VisualStudio\Packages...你还是看微软文档比较好,我重点提几个地方: 容量,35G,我在云服务器上买了40G的云盘专门用来存放VS离线安装文件 证书,下载好离线安装文件后,里面有个证书目录,其中有3个证书,在安装VS之前需要分别双击导入这...你知道完整安装VS2019需要多大空间吗?140GB,不算离线文件的35GB,耗费180G空间,很多很多时间。

    19.7K111

    右值引⽤与移动语义

    ,然后在函数中直接对该对象进行构造来避免多次拷贝造成效率上的浪费。...实际上,右值引用确实可以延长右值的生命周期,但是返回的右值是在构造的函数栈帧中建立的空间,当使用完函数后栈帧会被释放,当然右值的空间也会被释放,所以即使接受了返回值,接收的也是空值。...移动赋值操作符: 同样使用 swap(s),在赋值前确保清理当前对象的资源。 通过 noexcept,确保在发生异常时程序的安全性。...图1展⽰了vs2019 debug环境下编译器对拷⻉的优化,左边为不优化的情况下,两次拷⻉构造,右边为编译器优化的场景下连续步骤中的拷⻉合⼆为⼀变为⼀次拷⻉构造。...当传入一个右值时,容器会调用移动构造函数,将右值的资源swap到当前对象上。

    13510

    异常捕获优化c++写的顺序栈

    如果try语句里面的语句都没有出现异常,就会执行catch后面的代码块 2.try语句里面存在语句抛出异常,会去下面的catch块中寻找抛出异常类型相同的语句块 3. try语句抛出异常,但是下面的catch...语句块中没有一个能够捕获该异常,那么会跳转到catch下面的语句,造成程序的终止,因为异常没有被解决 会丢出异常的情况 自定义异常类 异常捕获优化c++写的顺序栈 #include...isEmpty()) { return data[top]; } return NULL; } bool stack::isFull() { if (top+1==size) return...3下面的语句不会执行 s1.push(&p[2]); } //catch(异常类型),异常类型就是定义的异常内部类的类名 catch (stack::Full) { cout << "FULL...<< endl; } } int main() { test(); system("pause"); return 0; } vs2019编译器会出错 ?

    45720

    vs2019 Com组件初探-简单的COM编写以及实现跨语言调用

    前提条件   1、掌握C++基础语法   2、平台安装 vs2019   3、本地平台为 windows 10 1909 X64   4、了解vbs基础语法 本次目标   1、掌握Com组件的概念及原理...  2、编写一个简单的以DLL形式展现的Com组件   3、通过 VBS 实现跨语言调用COM 1、Com组件概念及原理 什么是COM: 引用百度百科:COM component(COM组件)是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术...而com组件本质上就是二进制可执行文件,com以 DLL 或 EXE 形式发布的) 什么是ATL: 引用百度百科:ATL是ActiveX Template Library 的缩写,它是一套C++...(个人理解:ActiveX就是Com组件集合的名字,并且主要用在web方面,本质上就是COM)这里引用 360百科 的词条 [ 大白话容易理解 ] 2、编写一个简单的Com组件 VS2019 新建基于...”而Number为类中的函数名 image.png   保存并运行 执行成功 image.png 注意事项:   vbs调用的com必须为IDispatch 接口   vs2019 ATL 默认为 继承

    2.5K40

    dotNET Core 3.X 使用 Web API

    环境 操作系统:Mac IDE:Rider dotNET Core:3.1 创建项目 如果是 Windows 操作系统当然是首选 VS2019 ,在 Mac 中虽然也有 VS2019 For Mac,但还是感觉...3、3.x 引入了新的 JSON API ,新的 JSON API 使用更少的内存,拥有更快的执行速度,引用 using System.Text.Json; 就可以使用,如果需要使用原来的功能,需要引入...常见的一个问题:由于客户端参数的问题,导致接口代码中执行异常了,最终返回了 500,导致排查问题非常复杂,还需要还原问题场景下的数据和入参。...接口 使用第三方的验证库,比如 FluentValidation Data Annotations 1、在 User 的实体类上添加相关特性 public class User { [Required...new []{nameof(User)}); } return ValidationResult.Success; } } 2、在 User 类上添加此特性

    1.6K30

    C# DataSet结合FlyTreeView显示树状模型数据

    groupUsers(群组用户表),其结构如下表: 序号 字段名 类型 说明 1 cid uniqueidentifier 唯一标识 2 Group_Cid uniqueidentifier 所属群组ID标识(引用群组表...groups) 3 Account_Cid uniqueidentifier 人员帐户ID(引用用户表Accounts,用于显示昵称、姓名等) 4 parent_Cid uniqueidentifier...sys_instime datetime 创建时间 8 sys_upduser nvarchar(100) 最后修改者用户名 9 sys_updtime datetime 最后修改时间 该表所涉及的引用表这里不在赘述...] NULL, [sys_insuser] [nvarchar](100) NULL, [sys_instime] [datetime] NULL, [sys_upduser] [nvarchar...操作系统: Windows Server 2019 DataCenter 数据库:Microsoft SQL Server 2016 .net版本: .netFramework4.0 或以上 开发工具:VS2019

    12610
    领券