概述:C#的数据类型。
零 类型的分类
0.值类型
- 变量直接存储值。
- 存储在堆栈中
0.引用类型
- 存储值的引用,也就是存储值的内存地址。
-
存储在托管堆中
- 每个引用总是处理器的“原生大小”。也就是,32位处理器引用大小是32位,64位处理器引用大小是64位。
一 预定义值类型
0.8种整数类型
类型 | 大小 | 范围 | BCL名称 | 后缀 |
---|---|---|---|---|
sbyte | 8位 | System.SByte | -128~127(-2^7~2^7-1) | |
short | 16位 | System.Int16 | ||
int | 32位 | System.Int32 | ||
long | 64位 | L/l | System.Int64 | |
byte | 8位 | System.Byte | ||
ushort | 16位 | System.UInt16 | ||
uint | 32位 | U/u | System.UInt32 | |
ulong | 64位 | UL/ul | System.UInt64 |
1.2种用于科学计算的二进制浮点类型
2.1种用于金融计算的十进制浮点类型
3.1种布尔值类型
4.1种字符类型
1.C#中的预定义值类型
- object类型
-
string类型
- ModelState的位置
- ModelState.IsValid 表示
模型绑定
、模型验证
是否都是都成功。模型绑定的错误通常是数据转换错误。模型验证的错误通常是数据不符合业务规则。 - 如何获取模型绑定和模型验证的错误消息
foreach (var item in ModelState.Values)//一个Model可能有多个字段 { foreach (var jitem in item.Errors)//一个字段可能有多个错误 { jitem.ErrorMessage;//string } }
2.Web与Web Api 的模型验证
- 模型绑定和验证都在执行控制器操作或 Razor Pages 处理程序方法之前进行。 Web 应用负责检查 ModelState.IsValid 并做出相应响应。 Web 应用通常会重新显示带有错误消息的页面:
- 如果 Web API 控制器具有
[ApiController]
特性,则它们不必检查ModelState.IsValid
,在此情况下,如果模型状态无效,将返回包含问题详细信息的自动 HTTP 400 响应。
3.重新运行模型验证
- 验证自动进行,但是可能需要手动进行重复验证。 例如,你可能为属性计算一个值,并且希望将属性设置为所计算的值后,再重新运行验证。
- 使用代码
TryValidateModel(model)
二 模型验证
1.验证特性
- 通过验证特性可以为模型属性指定验证规则。包括:内置特性、自定义特性。
2.内置特性
[CreditCard]
:验证属性是否有信用卡格式。[Compare]
:验证模型中的两个属性是否匹配。[EmailAddress]
:验证属性是否有电子邮件格式。[Phone]
:验证属性是否有电话号码格式。[Range]
:验证属性值是否在指定范围内。[RegularExpression]
:验证属性值是否与指定的正则表达式匹配。[Required]
:验证字段是否非 NULL。 请参阅 [必需] 特性,获取关于该特性的行为的详细信息。[StringLength]
:验证字符串属性值是否未超过指定长度限制。[Url]
:验证属性是否有 URL 格式。-
[Remote]
:通过调用服务器上的操作方法,验证客户端上的输入。 请参阅 [远程] 特性获取关于该特性的行为的详细信息。 -
在
System.ComponentModel.DataAnnotations
命名空间中可找到验证特性的完整列表 - 错误消息:
[StringLength(8, ErrorMessage = "Name length can't be more than 8.")]