企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
内置值类型: | C# 类型关键字 | .NET 类型 | | --- | --- | | [`bool`](https://learn.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/bool) | [System.Boolean](https://learn.microsoft.com/zh-cn/dotnet/api/system.boolean) | | [`byte`](https://learn.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/integral-numeric-types) | [System.Byte](https://learn.microsoft.com/zh-cn/dotnet/api/system.byte) | | [`sbyte`](https://learn.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/integral-numeric-types) | [System.SByte](https://learn.microsoft.com/zh-cn/dotnet/api/system.sbyte) | | [`char`](https://learn.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/char) | [System.Char](https://learn.microsoft.com/zh-cn/dotnet/api/system.char) | | [`decimal`](https://learn.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/floating-point-numeric-types) | [System.Decimal](https://learn.microsoft.com/zh-cn/dotnet/api/system.decimal) | | [`double`](https://learn.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/floating-point-numeric-types) | [System.Double](https://learn.microsoft.com/zh-cn/dotnet/api/system.double) | | [`float`](https://learn.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/floating-point-numeric-types) | [System.Single](https://learn.microsoft.com/zh-cn/dotnet/api/system.single) | | [`int`](https://learn.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/integral-numeric-types) | [System.Int32](https://learn.microsoft.com/zh-cn/dotnet/api/system.int32) | | [`uint`](https://learn.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/integral-numeric-types) | [System.UInt32](https://learn.microsoft.com/zh-cn/dotnet/api/system.uint32) | | [`nint`](https://learn.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/integral-numeric-types) | [System.IntPtr](https://learn.microsoft.com/zh-cn/dotnet/api/system.intptr) | | [`nuint`](https://learn.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/integral-numeric-types) | [System.UIntPtr](https://learn.microsoft.com/zh-cn/dotnet/api/system.uintptr) | | [`long`](https://learn.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/integral-numeric-types) | [System.Int64](https://learn.microsoft.com/zh-cn/dotnet/api/system.int64) | | [`ulong`](https://learn.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/integral-numeric-types) | [System.UInt64](https://learn.microsoft.com/zh-cn/dotnet/api/system.uint64) | | [`short`](https://learn.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/integral-numeric-types) | [System.Int16](https://learn.microsoft.com/zh-cn/dotnet/api/system.int16) | | [`ushort`](https://learn.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/integral-numeric-types) | [System.UInt16](https://learn.microsoft.com/zh-cn/dotnet/api/system.uint16) | | 类型 | 描述 | 范围 | 默认值 | | --- | --- | --- | --- | | bool | 布尔值 | True 或 False | False | | byte | 8 位无符号整数 | 0 到 255 | 0 | | ushort | 16 位无符号整数类型 | 0 到 65,535 | 0 | | uint | 32 位无符号整数类型 | 0 到 4,294,967,295 | 0 | | unint | 无符号32位 或 64位整数 | | 0 | | nint | 有符号32位或 64 位整数 | | 0 | | ulong | 64 位无符号整数类型 | 0 到 18,446,744,073,709,551,615 | 0 | | sbyte | 8 位有符号整数类型 | \-128 到 127 | 0 | | short | 16 位有符号整数类型 | \-32,768 到 32,767 | 0 | | int | 32 位有符号整数类型 | \-2,147,483,648 到 2,147,483,647 | 0 | | long | 64 位有符号整数类型 | \-923,372,036,854,775,808 到 9,223,372,036,854,775,807 | 0L | | char | 16 位 Unicode 字符 | U +0000 到 U +ffff | '\\0' | | float | 32 位单精度浮点型 | \-3.4 x 10^38到 + 3.4 x 10^38 | 0.0F | | double | 64 位双精度浮点型 | (+/-)5.0 x 10^-324到 (+/-)1.7 x 10^308 | 0.0D | | decimal | 128 位精确的十进制值,28-29 有效位数 | (-7.9 x 10^28到 7.9 x 10^28) / 100 到 28 | 0.0M | int和Integer(默认值:null)还不一样? long 和Long (默认值:null)还不一样? ``` float price1=12f;//不加f则默认为double double price2=12d//d可以省略 decimal price3=12m ``` ``` public class PlacementPoint { public string Name; //成员变量 } //Name是public成员变量,其它类对象可以直接读写它 但问题是,1.这样做没有封装性,没有数据安全性;2.并且有时我们是想定义只能读或者只能写的成员;甚至可能在写(赋值)的时候加点其它判断逻辑啊。 于是引出了属性property,它有两个方法,一个是get读方法,一个是set写方法 //早期版本的属性语法 public class PlacementPoint { private string _name; //私有成员 //_name对应的属性定义 public string Name{ get { return _name; } set{ //此处前后还可以做点其它逻辑判断 _name = value; //value是C#属性关键字,代表赋值时右边的新值 } } } 我就想定义一个简单的属性而已,写的代码是不是多了点,要先定义一个私有成员变量,再定义对应的set和get方法,如果一个类有多个这样的属性,代码就千篇一律,垃圾代码,于是C#又作出了改进,新语法中,上面的代码被简化成了: public class PlacementPoint { public string Name { get; set; } } //C#编译器会帮你做代码扩展编译成之前的那种代码 如果我只想定义只读成员: public class StandResponse { public string Code{get;} } ``` 如需得到一个类型或一个变量在特定平台上的准确尺寸,可以使用 sizeof 方法。表达式 sizeof(type) 产生以字节为单位存储对象或类型的存储尺寸。下面举例获取任何机器上 int 类型的存储尺寸: namespace DataTypeApplication {    class Program    {       static void Main(string[] args)       {          Console.WriteLine("Size of int: {0}", sizeof(int));          Console.ReadLine();       }    } }