有两种不同类型的属性:值(Values)和引用(References)。 下图中是一个具有音频源 (Audio Source)组件的空游戏物体。在检视面板中所有音频源的值都是缺省的。...音频剪辑中剩下的七个都是值属性。都可以通过单击并按下 Enter键来调整它们。使用键盘输入值,并按 Enter保存它。...你也可以通过使用 option-或 right-click或拖动数字属性来快速滚动这些值。 音频剪辑中的值属性都是数字,但是一些属性也可以是字符串。...当你退出播放模式时你的属性值将恢复到播放前的值,因此,你不会丢失任何工作。这个工作方式,提供给你难以置信的方便来试验,调整,精简你的游戏而不必要花费大量的时间。 ...预设(Prefab) 预设是一个存储在工程视图中可重用的游戏物体。预设可以被插入到任意数量的场景中,并可多次出现在同一场景中。当你添加一个预设到场景中,你就创建了一个它的实例。
将引用类型设为默认不可为空:将所有引用类型都设为默认不可为空,但实现这一点时,应使用可选择启用的编译器开关,而不是突然对开发人员的现有代码发出大量警告,让人应接不暇。...在本文的剩余部分中,将逐一介绍这些目标,以及 C# 8.0 如何在 C# 语言中实现对它们的基本支持。 提供指明应使用空值的语法 首先,需要有语法可区分何时引用类型应为空,何时不应为空。...允许为空的语法明显就是使用 ? 作为可为空声明,这对值类型和引用类型都适用。借助引用类型支持,可方便开发人员选择启用空值,例如: string?...这不是因为新增了一些可为空引用数据类型,而是现在开始支持显式选择启用所述数据类型。 提供了可为空引用类型语法,不可为空引用类型语法又如何呢? 虽然下面的语法: string!...尽管可以将引用类型声明为可为空,或避免向不可为空类型分配空值,但稍后代码中也可能会出现新的警告或错误。
未来C#特性列表中的第一位是可空引用类型。 我们在去年首次介绍了这一点,但是要简要回顾一下:默认情况下,所有引用变量,参数和字段将不可为空。...然后,就像值类型一样,如果你希望任何东西都是可以为空的,你必须明确指出通过向类型名称附加一个问号(?)。 这将成为一个可选的功能,现在的想法对于升级到C#8的现有老项目,可空的引用类型是被关闭的。...因此,您可以禁用遗留代码上的警告以减少误报数量。 同样,使用此功能的库不会触发警告,因为编译器不知道给定的参数是否应该被视为可为空。...由于我们没有使用MiddleName,所以下划线用作跳过属性的占位符。...Asynchronous Enumerators 像IEnumerable 一样,IAsyncEnumerable 将允许枚举未知长度的有限列表。 匹配的枚举器虽然看起来略有不同。
绑定(Bind)属性是另一个重要安全机制,可以防止黑客攻击(从over-posting数据到模型)。应该只包含在bind属性属性,本教程中使用的简单模型,模型中绑定所有数据。...数据保存之后,代码会把用户重定向到 MoviesController类的Index操作方法,页面将显示电影列表,同时包括刚刚所做的更新。 一旦客户端验证确定某个字段的值是无效的,将显示出现错误消息。...ViewBag填入的操作方法: 参数“All”提供的项列表中的预先选择的。...因为我们没有一个电影流派“All”,也没有“All”的 SelectList,所以当我们post back后不做任何选择,movieGenre查询字符串值是空的。...在下一篇中,将看到如何添加一个属性到 Movie model,和如何添加一个初始值设定项值,它会自动创建一个测试数据库。
整体上看,Kotlin 的空安全特性帮助点评 Android 应用将空指针导致的崩溃从日均 3 个降低至 0。...2017 年,中国电信营业厅应用团队就开始使用 Kotlin,现在他们的新项目大约有 50% 的代码都是 Kotlin 编写。团队成功将空指针异常的出现概率 降低了 80% 之多。...然而,经常会发生忘记实现其中一个方法或者在类中添加新属性时忘记更新。当处理仅用于保存数据的类时,请使用 Kotlin 数据类。...修改枚举来添加新的值时,您必须手动检查使用枚举的每个代码段,并确保处理好新的情况。但这很容易出错。...您可以进一步阅读如何 利用 Kotlin 打造更优质的应用,并通过我们的 案例研究 来了解开发者如何从 Kotlin 中获益。
对于不可为空引用类型,编译器使用流分析来确保在声明时将本地变量初始化为非 Null 值。 字段必须在构造过程中初始化。...如果没有通过调用任何可用的构造函数或通过初始化表达式来设置变量,编译器将生成警告。 此外,不能向不可为空引用类型分配一个可以为 Null 的值。...不对可为空引用类型进行检查以确保它们没有被赋予 Null 值或初始化为 Null。...不过,编译器使用流分析来确保可为空引用类型的任何变量在被访问或分配给不可为空引用类型之前,都会对其 Null 性进行检查。 异步流: 从 C# 8.0 开始,可以创建并以异步方式使用流。...请看如下代码: 使用await foreach 语句来枚举序列: 可以在创建和使用异步流的教程中自行尝试异步流。 默认情况下,在捕获的上下文中处理流元素。
"; C# 11 预览:列表模式 阅读更多关于提案列表模式中的这种变化。 新的列表模式允许您匹配列表和数组。您可以匹配元素,并且可以选择包含匹配零个或多个元素的切片模式。...调用方法时会发生空值检查。 该语法对迭代器方法的参数也有效。调用迭代器方法时会发生空值检查,而不是遍历底层枚举器时。...// Okay ) 构造函数 当您从代码中的显式空检查更改为使用空验证语法 (!!) 进行空检查时,会有一个很小但可以观察到的变化。...我们决定不使用属性是因为它会如何影响代码的可读性,并且因为属性很少会像此功能那样影响程序的执行方式。 我们考虑并拒绝了对所有可空参数进行空检查的全局设置。参数空值检查强制设计选择如何处理空值。...我们还从 .NET 运行时工作中了解到,有很多地方不适合进行检查,因此需要按参数选择退出机制。我们目前认为运行时空值检查的全局方法可能不合适,如果我们考虑使用全局方法,那将是一个不同的特性。
显示长度只表示数据可以达到指定的长度,但不会自动满足到指定长度。如果想要数据的显示保持最高位(显示长度),需要给字段增加 zerofill 属性。...'20'+year : '19'+year ) time 本质是用来表示时间区间(xxx个小时),所以可表示范围较大 -838:59:59~838:59:59 time 录入时可使用一个简单的日期(可为负数...,不用刻意选择text类型,系统会自动根据存储的数据长度选择合适的文本类型 在选择字符存储时,如果数据超过255字符,一定选择text存储 mysql记录长度 mysql中规定记录长度 (record...1-2字节存储枚举数据,通过计算enum列举的具体值选择实际存储空间:如果数据值列表 255 && <=65535,分配2字节 mysql> create table...设定枚举类型时,会给枚举中每个元素定义一个下标,这个下标规则从1开始 Enum(1=>‘男’,2=>’女’,3=>’保密’) select * from tbTest; | gender | | :--
在其它类型属性上使用 @Required修饰会导致编译失败。 Tip:基本数据类型不需要使用注解 @Required,因为他们本身就不可为空。...使用copyToRealmOrUpdate或copyToRealm方法插入数据 当Model中存在主键的时候,推荐使用copyToRealmOrUpdate方法插入数据。...(null)的 JSON 创建对象: 对于非必须(可为空值的属性),设置其值为 null; 对于必须(不可为空值的属性),抛出异常; 使用包含空值(null)的 JSON 更新对象: 对于非必须(可为空值的属性...),设置其值为 null; 对于必须(不可为空值的属性),抛出异常; 使用不包含对应属性的 JSON: * 该属性保持不变 查 查找操作就比插入方便多了,并不需在事务中操作,直接查询即可。....equalTo("dogs.name", "二哈").findAll(); 得到有养有dogs.name为"二哈"的用户列表(这里的dogs是User表中的属性名) equalTo
对于不可为空引用类型,编译器使用流分析来确保在声明时将本地变量初始化为非 Null 值。 字段必须在构造过程中初始化。...如果没有通过调用任何可用的构造函数或通过初始化表达式来设置变量,编译器将生成警告。 此外,不能向不可为空引用类型分配一个可以为 Null 的值。...不对可为空引用类型进行检查以确保它们没有被赋予 Null 值或初始化为 Null。...不过,编译器使用流分析来确保可为空引用类型的任何变量在被访问或分配给不可为空引用类型之前,都会对其 Null 性进行检查。 可以在可为空引用类型的概述中了解该功能的更多信息。...可以在此可为空引用类型教程中的新应用程序中自行尝试。 在迁移应用程序以使用可为空引用类型教程中了解迁移现有代码库以使用可为空引用类型的步骤。
,即不允许为空值。...如果需要声明一个变量可为空,仅需在变量类型后面加上? val n: String?=null 声明一个变量可为空,仅需在变量类型后面加上?...// 在使用n的时候,由于n可能为null,直接使用编译器会报错 n.length // 正确的使用方式是,在使用前,做判空处理 // 如果变量为空,只需在变量类型后面加上?...,这样就不会访问length属性了 n?.length // 如果确定一个可空变量不为空 // 可以加!!告诉编译器它不为空 n!!....when 表达式 5.8.2.1 kotlin 枚举 Kotlin 中,枚举类型以类的形式存在,因此叫做枚举类,详细代码如下: enum class Color { RED, GREEN, BLUE
上次讲到了列类型的枚举类型,那么接下来还有集合记录长度,列属性倒不是特别多,也就有空属性,列描述以及默认值,所以学起来也是超快~ 集合字符串 集合跟枚举实际上很类似,实际上存储的是数值,而不是字符串(集合可以多选...) 集合定义:set 元素列表 使用:使用元素列表中的多个元素,使用逗号分隔 插入数据:使用多个元素字符串组合,也可以直接插入数值 相关语句: -- 创建集合表 create table my_set...列属性有很多:NULL/NOT NULL,default,primary key,auto_increment,comment(描述表的字段) 这里讲到的是空属性,列描述和默认值。...空属性 两个值:NULL(默认的)和NOT NULL(不为空) 数据值是默认的,且数据库基本都是字段为空;但是实际上在开发的时候,是需要尽可能的保证所有的数据都不应该为空:因为空数据无意义,也没有办法参与运算...默认值 某一种数据会经常性的出现某个具体的值,可以在一开始就指定好,在需要真实数据的时候,用户可以选择性的使用默认值或者自己选择不使用默认值。
来自高性能Mysql中有这样一段话: 尽量避免NULL 很多表都包含可为NULL(空值)的列,即使应用程序并不需要保存NULL也是如此,这是因为可为NULL是列的默认属性。...通常情况下最好指定列为NOT NULL,除非真的需要存储NULL值。 如果查询中包含可为NULL的列,对MySql来说更难优化,因为可为NULL的列使得索引、索引统计和值比较都更复杂。...NULL和NOT NULL使用的空值代表的含义是不一样,NULL可以认为这一列的值是未知的,空值则可以认为我们知道这个值,只不过他是空的而已。...举个例子,一张表中的某一条name字段是NULL,我们可以认为不知道名字是什么,反之如果是空字符串则可以认为我们知道没有名字,他就是一个空值。...对于现状大部分使用MyBatis的情况来说,我建议使用默认生成的insertSelective方法或者纯手动写插入方法,可以避免新增NOT NULL字段导致的默认值不生效或者插入报错的问题。
().ToTbale("Users"); 一、主键映射 表的主键我们一般习惯使用 Id 或者以 Id 结尾的方式来命名,EF默认情况下会将 Id 或以 Id 结尾的属性作为主键,如果两者都存在的话...,值如下: 值 说明 Identity 标识列 Computed 计算列 None 手动分配值 二、数值映射 数据库中的数值类型有很多种,C#中也有很多数值类型,但是我们无法直接将C#中的数值类型转换为数据库中的数值类型...字段不可为空 //设置Name属性在数据库映射不可为空 modelBuilder.Entity().Property(p=>p.Name).IsRequired(); 字段可为空 //设置Birthday...属性在数据库映射可为空 modelBuilder.Entity().Property(p=>p.Birthday).IsOptional(); 四、日期映射 EF中的日期类型在数据库中默认映射为...,因此我们不需要通过 IsRequired 来配置映射字段不可为空,因为默认就是不为空的。
尽量避免NULL 如果査询中包含可为NULL的列,对MySQL来说更难优化,因为可为NULL的列使 得索引、索引统计和值比较都更复杂。...使用枚举(enum)代替字符串类型 枚举可以把一些不重复的字符串存储成一个预定义的集合,MySQL在存储枚举时非常紧凑,会根据列表值压缩到1到2个字节中。...很多人喜欢用随机的字符串来作为标识列,例如:UUID。 由于生成的字符没有规律,会导致INSERT和SELECT语句变得很慢: 插入的值会随机的写入到索引的不同位置,使得INSERT更慢。...全能的枚举 注意防止过度使用枚举(ENUM),在MySQL 5.0以及更早的版本中ALTER TABLE是一 种阻塞操作;即使在5.1和更新版本中,如果不是在列表的末尾增加值也会一样需 要ALTER...即使需要存 储一个事实上的“空值”到表中时,也不一定非得使用NULLO也许可以使用0、某个特殊值,或者空字符串作为代替。 但是遵循这个原则也不要走极端。
本文将一步一步介绍如何实现下面这样的一个任务管理工具 完整代码已上传至码上掘金:jcode 作者正在参加码上掘金编程赛,辛苦各位读者大大给我的码上掘金作品点个赞吧 基本结构 首先我们建立 HTML 的基本结构...则会将输入框的值添加到任务列表中。...这段代码使用了 innerHTML 属性将一个新的 div 元素插入到了任务列表中,其中包括任务名称和删除按钮。...${document.querySelector('#newtask input').value} 是一个 ES6 模板字符串语法,用于将输入框的值插入到字符串中。...这里使用了 querySelectorAll 方法选择所有具有 delete 类名的元素,并使用 for 循环遍历它们,并将每个元素的点击事件绑定到一个匿名函数上。
MemoryStream)和功能加强 2.5.5.4 2021.09.02 修复可为空枚举导入时的验证问题#322。...【导出】支持Excel模板导出并填写相关单元测试,如何使用见教程《Excel模板导出之导出教材订购表》 支持单元格单个绑定 支持列表 2019.12.17 【Nuget】版本更新到1.4.16 【导入】...【导入】优化枚举和Bool类型的导入数据验证项的生成,以便于模板生成和数据转换 枚举默认情况下会自动获取枚举的描述、显示名、名称和值生成数据项 bool类型默认会生成“是”和“否”的数据项 如果已设置自定义值映射...,则不会生成默认选项 【导入】支持枚举可为空类型 2019.10.30 【Nuget】版本更新到1.4.0 【导出】Excel导出支持动态列导出(基于DataTable),感谢张善友(https://github.com...Excel进行错误标注,支持多个错误 【导入】加强对基础类型和可为空类型的支持 【EPPlus】由于EPPlus.Core已经不维护,将EPPlus的包从EPPlus.Core改为EPPlus, 2019.9.11
领取专属 10元无门槛券
手把手带您无忧上云