C#基础-数据类型

零 类型的分类

0.值类型

  • 变量直接存储值。
  • 存储在堆栈中

0.引用类型

  • 存储值的引用,也就是存储值的内存地址。

  • 存储在托管堆中

  • 每个引用总是处理器的“原生大小”。也就是,32位处理器引用大小是32位,64位处理器引用大小是64位。

一 预定义值类型

0.8种整数类型

类型 大小 范围 BCL名称 后缀
sbyte 8位 System.SByte -128127(-2^72^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

  • 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.")]

posted @ 2022-06-07 10:17  MiCoos  阅读(46)  评论(0)    收藏  举报