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

【错误记录】Kotlin 代码运行时报错 ( init 初始化调用还未初始化的成员属性 )

文章目录 一、报错信息 二、问题分析 三、解决方案 该问题的本质就是 , 成员属性 init 初始化代码块中进行初始化 , 但是初始化之前调用了该 成员属性 , 编译时没有报错信息 , 但是运行时会报异常...角度分析 上述代码的执行顺序 , Kotlin 类 对象实例化 时会执行一系列的 初始化操作 , 这些操作按照如下顺序执行 : 主构造函数 属性赋值 类属性赋值 init 初始化的代码执行...次构造函数 的代码执行 首先 , 上述代码没有主构造 函数 , 因此该项忽略 ; 然后 , 执行属性的赋值 , 代码定义了 name 属性 , 但是没有进行赋值 ; var name: String...再后 , 执行 init 初始化块 , 其中先执行 nameFirstLetter 函数 , 该函数调用了 fun nameFirstLetter() = name[0] 的 name 属性 ,...} 该问题的本质就是 , 成员属性 init 初始化代码块中进行初始化 , 但是初始化之前调用了该 成员属性 , 编译时没有报错信息 , 但是运行时会报异常 ; 三、解决方案 ---- 调换 初始化代码块

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

C#开发BIMFACE系列53 WinForm程序中使用CefSharp加载模型图纸1 简单应用

我的博客《C#开发BIMFACE系列52 CS客户端集成BIMFACE应用的技术方案》中介绍了多种集成BIMFACE到客户端程序的方案。...允许开发者.NET应用程序嵌入Chromium。可以C#或VB或任何其他CLR语言中使用。CefSharp同时提供WPF和WinForms Web浏览器控件实现。...网页即可调用 ChromiumWebBrowserBindObject 类定义的属性、方法 11 var objToBind = new ChromiumWebBrowserBindObject...定义一个单独的类,用于CefSahrp组件加载网页之前,将其注入到网页 (4)WinForm窗体中点击【 C# 调用 JS 方法】按钮。...当控件Dock属性设置为 Fill,客户端电脑的缩放与布局不是100%时,窗体呈现黑边(严重bug),并没有完全填充父容器。 《BIMFace.SDK.CSharp》开源SDK。

2.4K40

C# 数据操作系列 - 3. ADO.NET 离线查询

离线查询 C#查询上提供了另一种机制,可以一次性从数据库把结果读取到网络缓存区,直到使用的时候才加载到程序。...好,让我们粗略浏览一下这个三个关键点的属性和方法: IDataAdapter: public int Fill (System.Data.DataSet dataSet);//将查询出来的结果填充到DataSet...里 C#内部,其实不允许推荐直接继承该接口,推荐继承DataAdapter类,该类规定了数据库Adapter初始化的时候,必须提供一个可以访问的数据库连接和要执行的命令文本。...上图是VS的调试模式,可以看到 根据上图我们大概可以猜测一下DataTable内部的数据结构,或者C#让我们理解的结构是什么。...当我们能从数据库获取到DataTable的时候,我们就能通过这个做出更多的事情来。下一章我将带领大家结合之前介绍的反射,实现一个简单的ORM工具类。

1.8K20

C#学习之路(1)--数据库技术

前言 7月10日就要去扬州实习了,首先是为期2个月的培训。一个月的Java,一个月的C#。在这一个月里面,准备梳理一下java和C#的基础知识,同时也进行更深一步的学习。...DataSet是支持离线访问的关键对象,它将数据存储缓存。 ---- 创建一个ADO.NET数据库应用程序一般步骤 创建Windows窗体。 创建Connection对象,连接数据库。...Fill()方法:该方法用于执行SelectCommand里面的SQL命令,把数据源的数据填充到DataSet对象。...AcceptChanges()方法:该方法一般用于修改了DataSet对象里面某一个表里面的内容,然后把修改的具体内容提交给DataSet对象的表,调用了这个方法,RowState记录就初始化了,注意...:如果用调用到RowState初始化的DataTable再去调用Update()方法去更新数据库里面的表,将不会有任何变化。

1.9K40

winform与cefsharp混合开发_winform窗体

简介 CefSharp简单来说就是一款.Net编写的浏览器包,方便你Winform和WPF内嵌的Chrome浏览器组件。...Test.Chrome工程添加NuGet引用,搜索CefSharp,选择CefSharp.Winforms。 解决方案上点配置管理器,将平台设置为x86或x64....Using CEF (as Browser) 代码引用相应的dll using CefSharp; using CefSharp.WinForms; 完整示例: using System; using...Using CEF (as User Interface) 这块参考官方文档:传送门,做了部分内容的完善,这块我理解的就是提供了一个js调用C#类方法的一个示例。...—》设置始终复制 新建一个类CefCustomObject,用来让js调用C#类的方法,具体代码如下: using System; using System.Collections.Generic;

2.8K21

WinForm学习

二、C#的特点 三、了解C#、.NET、Winform的关系 四、快速创建Winform程序 五、Winform菜单和工具栏 六、Form初始化、布局 总结 一、C#是什么?...此外还提供了命名空间来管理 C# 文件,命名空间 相当于一个文件夹,创建程序时,允许一个命名空间中创建一个或多个类,方便调用和重用 面向对象 与其他面向对象语言一样,C# 语言也具有面向对象语言的基本特征...,让开发人员能快速地构建 C# 应用程序 三、了解C#、.NET、Winform的关系 .NET 是一个开发平台,而 C# 是一种 .NET 开发平台上使用的编程语言,目前能在 .NET 平台上使用的开发语言很多...11)容器 容器可以放入需要的组件 12)属性 Anchor属性可以将内部容器窗体的拉伸大小随外部窗体的改变而改变 Dock属性将控件停靠在窗体的边缘或者填充窗体...六、Form初始化、布局 1.form初始化操作时是先执行构造方法的InitializeComponent(),然后执行load(),包括实例化——属性设置——事件注册——将控件添加到当前窗体的Controls

3.3K11

C#开发BIMFACE系列52 CS客户端集成BIMFACE应用的技术方案

我的博客《C#开发BIMFACE系列49 Web网页集成BIMFACE应用的技术方案》、《C#开发BIMFACE系列50 Web网页中使用jQuery加载模型与图纸》、《C#开发BIMFACE系列...下面主要介绍 WinForm 集成 Web 网页的几种实现方式。   谈论集成的问题之前,先了解一下浏览器的内核。  ...只支持单线程模式,大部分对其操作必须在创建它的线程执行,不可以在其它线程调用其方法或属性。 性能相对较弱。...CefSharp中文帮助文档,请点击查看 免费、开源:https://github.com/cefsharp/CefSharp 支持JS、C#WinForm窗体之间相互通讯与调用。...当控件Dock属性设置为 Fill,客户端电脑的缩放与布局不是100%时,窗体呈现黑边(严重bug),并没有完全填充父容器。

4.6K10

.NET桌面程序集成Web网页开发的十种解决方案

介绍 WinForm、WPF 集成 Web 网页的多种技术方案之前,先了解一下浏览器的内核。   ...只支持单线程模式,大部分对其操作必须在创建它的线程执行,不可以在其它线程调用其方法或属性。 性能相对较弱。...CefSharp中文帮助文档,请点击查看 免费、开源:https://github.com/cefsharp/CefSharp 支持JS、C#WinForm窗体之间相互通讯与调用。...当控件Dock属性设置为 Fill,客户端电脑的缩放与布局不是100%时,窗体呈现黑边(严重bug),并没有完全填充父容器。...而且在网页调用本地接口、以及 aardio 与浏览器的交互极其方便,例如直接调用 Javascript 函数,并且 Javascript 中直接回调 aardio 函数,不需要任何复杂的封装和中间件

2.8K11

实现任何数据库类型的DbHelper帮助类 使用C#创建SQLite控制台应用程序

---- 一、System.Data.Common命名空间下,存在这样的一个类: // // 摘要: // 表示一组方法,这些方法用于创建提供程序对数据源类的实现的实例...public abstract class DbProviderFactory { // // 摘要: // 初始化 System.Data.Common.DbProviderFactory...,也可以不一样), 2、我们利用在该抽象类实现的子类重写DbProviderFactory方法,并在子类的构造函数为该属性赋值,该值就是已经实现了具体数据库类型的DbProviderFactory。...四、示例演示 使用前,必须引用了System.Data.SQLite,具体请参考一下文章: 使用C#创建SQLite控制台应用程序 编写的客户端代码,如下: class Program...{ //客户端调用 static void Main(string[] args) { string fileName = "Test.db

4K31

再议Windows消息与WinForm事件

前言 2月份的时候,我之前曾经写过一篇关于Windows消息与C# WinForm事件机制的文章,名为《WinForm事件与消息》。在那篇文章,我简单探讨了一下事件和消息。...所以我们经常使用vs初始化一个基本的WinForm程序,显示的下列模板代码: /// /// 应用程序的主入口点。...Run以启动当前线程上的应用程序消息循环 } 因为Application是单线程运行的,所以Application.Run开始后,Application本身不断轮询检查消息队列,然后根据消息类型进行数据分发...窗体使用MouseClick事件的函数指针调用已经添加的响应函数。所以C#的事件字段实质上是一个函数指针列表,用来维护一些消息到达时的响应函数的地址。...MyMessageFilter MouseClick"); return true; } return false; } } 编写完成后,应用程序初始化的过程

21810

数据库使用教程:如何在.NET连接到MySQL数据库

dbForge Studio for MySQL是一个Windows平台被广泛使用的MySQL客户端,它能够使MySQL开发人员和管理人员一个方便的环境与他人一起完成创建和执行查询,开发和调试MySQL...点击下载dbForge Studio for MySQL最新试用版 .NET连接到MySQL数据库 .NET是伟大的,它为数据库和数据源的工作提供了大量的工具。...如果使用的是Visual Studio,请确保安装之前将其关闭。 安装适用于MySQL的工具后,打开Visual Studio并创建Windows Forms项目。...“绑定源”的属性窗口中,选择“DataSource”属性,然后选择“Add Project Data Source”。这将打开“数据源配置向导”。 选择Database,然后选择下一步。...要导入数据功能,您需要导入MySQL名称空间以及System.Data名称空间,方法如下: using MySql.Data.MySqlClient; using System.Data; 您只需C

5.5K10

基于Flowportal.Net写自己的应用时使用SqlDataReader遇到的一个问题

使用Flowportal.Net BPM的时候,因为一个特殊的步骤需要自动根据ERP的订单状态自动审批,设计流程的时候,把这个步骤设定为2个处理人的共享任务。其中一个是专门设定的一个系统账号。...然后,我创建了一个Winform的程序,自动执行以下的代码:先从BPM数据库读取出来未处理的当前流程、当前步骤的清单,接着循环判断而去使用单独创建的用户登录到BPM取得共享任务并审批通过,当然了如果判断...原因是SqlDataReader是读取完毕所有的查询结果后才断开数据库连接,所以循环内部就会出现已经存在一个数据库连接,造成新建连接冲突。...           SqlDataAdapter da = new SqlDataAdapter();            DataSet ds = new DataSet();            da.SelectCommand... = mycmd;            da.Fill(ds);            DataTable dt = new DataTable();            dt = ds.Tables

60630

C#问题攻克之使用winform调用人脸识别接口

lWindows 窗体应用程序是 C# 语言中的一个重要应用,也是 C# 语言最常见的应用。这套 C# WinForm 教程将教会大家如何使用 WinForm 开发一个简单的应用。...image.png 窗体的属性 l每一个 Windows 窗体应用程序都是由若干个窗体构成的,窗体属性主要用于设置窗体的外观。...l Windows 窗体应用程序右击窗体,弹出的右键菜单 选择“属性”命令,弹出如下图所示的属性面板。...l按钮常用的属性包括在按钮显示的文字 (Text) 以及按钮外观设置的属性,最常用的事件是单击事件。...lRichTextBox 控件使用时与 TextBox 控件是非常类似的,但其对于读取多行文本更有优势,它可以处理特殊格式的文本。 应用:使用winform调用人脸识别接口的具体操作步骤 第一步.

3.1K00

.NET混合开发解决方案11 WebView2加载的网页JS调用C#方法

程序通过NuGet管理器引用集成WebView2控件 .NET混合开发解决方案8 WinForm程序通过设置固定版本运行时的BrowserExecutableFolder属性集成WebView2控件...JS方法》中介绍了C#调用网页定义的JavaScript方法以执行某种业务逻辑,同样WebView2控件中加载的网页自定义的JavaScript方法也可以调用C#方法。   ...开发WebView2应用程序时,需要一个本机对象,它的方法或属性很有用。开发者希望从web端代码触发这些本机对象方法,或者作为应用程序web端用户交互的结果。...比如在网页调用客户端电脑的摄像头,如果在Web端开发,则编写大量的代码。如果在本机实现,则非常简单。能够调用本机对象的方法比应用程序的web端重新编码对象的方法更快、效率更高。...步骤2 访问目标网页之前,通过webView2.CoreWebView2.AddHostObjectToScript()方法向网页中注入主机对象,其中第一个参数是自定义名称(随意命名),JS访问主机对象时就需要与该参数名称一致

10.7K10

.NET混合开发解决方案12 网页JS调用C#方法访问WinForm或WPF窗体

程序通过NuGet管理器引用集成WebView2控件 .NET混合开发解决方案8 WinForm程序通过设置固定版本运行时的BrowserExecutableFolder属性集成WebView2控件...《.NET混合开发解决方案11 网页JS调用C#方法》中介绍了JS访问C#方法的简单实现方式。...但是企业级应用软件业务需求可能更加复杂,如JS调用C#方法之后,需要访问宿主的窗体,设置窗体(WinForm、WPF、WinUI、Win32)的控件等。...下面通过一个Demo来讲解如何实现JS调用C#方法。 业务场景:JS调用C#方法,传递三个参数,分别是num1、num2、message。...步骤3 访问目标网页之前,通过webView2.CoreWebView2.AddHostObjectToScript()方法向网页中注入主机对象,其中第一个参数是自定义名称(随意命名),JS访问主机对象时就需要与该参数名称一致

2.4K40

.NET混合开发解决方案4 WebView2的线程模型

21 * 否则无法目标窗体创建对象,且访问控件的属性值并不是当前运行时的属性值。...解决方案资源管理器,右键单击 WebView2 项目,然后选择 “属性”。 选择 “调试 ”选项卡,然后选中 “启用本机代码调试 ”复选框,如下所示。...C#语言中的延迟    C# 中使用 Deferral 时,最佳做法是将其与using块一起使用。 即使using块中间引发异常,该using块也可确保Deferral已完成。 ...相反,如果显式调用Complete()的代码,但在完成调用之前引发了异常,那么延迟直到一段时间后才完成,此时垃圾收集器最终会收集并处理延迟。在此期间,WebView2会等待应用程序代码处理事件。   ...WebView2控件并初始化CoreWebView2属性以及执行JS脚本时都是使用异步方式 系列目录     【已更新最新开发文章,点击查看详细】

3.1K30

.NET混合开发解决方案10 WebView2控件调用网页JS方法

程序通过NuGet管理器引用集成WebView2控件 .NET混合开发解决方案8 WinForm程序通过设置固定版本运行时的BrowserExecutableFolder属性集成WebView2控件....NET混合开发解决方案9 WebView2控件的导航事件   客户端程序(WinForm、WPF、Win32、WinUI)集成WebView控件加载Web完成后,还有两种常见的需求 C#调用JS...调用网页定义的JS方法,执行计算等。 JS调用C#方法 本文讲解第一种需求的实现方式。...初始化 CoreWebView2 后调用此方法。...只有直接在结果属性包含在 JSON 编码的对象;继承的属性不包括 JSON 编码的对象。 大多数 DOM 对象继承所有属性,因此需要将它们的值显式复制到另一个对象才能返回。

3K20
领券