C#基础——基本数据类型、常量及变量

简介: C#基础——基本数据类型、常量及变量

基础知识:

1.常用的数据类型:int,short,char等,注意:可空数据类型

整数类型

有符号整数:sbyte,short,int,long

sbyte 占有1个字节(8个二进制位),取值范围:-128 ~127

short 占有2个字节(16个二进制位),取值范围:-32768 ~32767

int占有4个字节(32个二进制位),取值范围:-2147483648 ~2147483647 如:int age = 13;

long占有8个字节(64个二进制位),取值范围:9,223,372,036,854,775,808~9,223,372,036,854,775,807

例:long num = 31413L


无符号整数:byte,ushort,uint,ulong

byte占有1个字节(8个二进制位),取值范围:0 ~255

ushort占有2个字节(16个二进制位),取值范围:0~65535

uint占有4个字节(32个二进制位),取值范围:0~4294967295

ulong占有8个字节(64个二进制位),取值范围:0~18,446,744,073,709,551,615如:ulong num = 3414324U;

浮点数(有小数点)

单精度:float,有效位:小数点后的7位。如 float price = 3.0987392F

双精度:double有效位:小数点后的15位。如 double price = 3.0987392222D

decimal 有效位:小数点后的28位。如 decimal price = 3.0987392222M

备注:decimal对应着数据库的money数据类型。


科学计数法表示数值:double  d=2.5e-6 ;表示d=2.5*10-6转存失败重新上传取消。

布尔数据类型:bool,只有true和false。

字符类型

单个字符(单引号):char占有2个字节(16个二进制位) 如:char c =  ‘a’;

字符串(双引号):string 如:string name = “张三”;

注:如果一个字符串时double的小数,不能直接强制转化为int类型,需要先转为double类型在转化int类型。例:


string a=”3.8”;int b=(int)Convert.ToDouble(a);


字符串留用问题:


    因为字符串是不可变的对象,如果多个字符串便令引用多个内容相同的字符串,这样就会浪费资源;如果在托管堆只保留一个字符串对象,这样会更加有效的利用内存。字符串留用的原理就是这样的,所以相同的字符串只有一个字符串实例,如string P_str=”abc”和string p_str2=”abc” 两个字符串变量引用的是一个字符串对象。


对象数据类型:是所有数据类型最终的基类

只有object 如:object obj = “123”;


可空数据类型:? 如:int? age = null;

备注:把大的数据类型的变量赋值给小的数据类型变量,须强制转换。如下:


 int b = 10;


 byte c = (byte)b;// 强制转换


注:整数在计算机中默认是int类型,小数默认是double类型。如果和小的数据类型做运算时也需要强转:


例: byte b=4; byte b1=3; byte b2=7;


b= b1+3; //出现错误提示:无法将类型int因式转换为‘’byte“,存在显示转换。


纠正:b=(byte)(b1+3);


另外,如果两个byte类型的数据做运算时也需要强转。


例:b=b1+b2; //无法将int因式转换为”byte“,存在一个显示转换,两个byte类型的变量相加是,自动转化为int ,防止超出范围。


变量的定义:根据定义的位置不同:

字段:定义在类的里面,方法的外边的变量

局部变量:定义在方法的里边的变量

Class Program {

//字段


Static Void Main()


{//局部变量}


变量的命名规则:第一个位置必须是字母或下划线,但只能包括字母,数字,下划线。

格式:数据类型 变量名字(注意:如果是字段的话,需要前边加上[访问修饰符]:[访问修饰符] 数据类型 变量名字)

5个访问修饰符:private,protected,internal,protected internal,public。

私有的(private):修饰的变量只能在当前类中访问,而其他类中不能访问。

受保护的(protected):修饰的变量只能在当前类中访问,或当前类的子类(派生类)中访问。

internal:修饰的变量只能在当前程序集(项目)中所有类访问。

protected internal:修饰的变量只能在当前类中访问,或当前类的子类(派生类)中访问,在当前程序集(项目)中所有类访问。

公共的(public):修饰的变量在任何类中都可以被访问。

常量,只读字段。

常量:在运行过程中,不能修改常量所保存的值。关键字:const,定义的时候必须初始化(给变量赋值)定义格式:字段常量和局部常量。定义常量用public


字段常量:[访问修饰符] const 数据类型 常量的名字=初始值 如:public const string sex = “男”;


局部常量:const 数据类型 常量的名字=初始值。如:const string sex = “男”;


注意:Const 不能与Static同时使用,因为Construction默认是静态的。


只读字段:在运行过程中,不能修改常量所保存的值,但唯一可以修改该变量的值是在类的构造函数中。关键字:readonly


一般情况下只有只读字段如:private readonly string connStr = “data source=.”


       Const与readonly区别:


1. const 字段只能在该字段的声明中初始化。readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly 字段可能具有不同的值。


2. const 字段是编译时常数,而 readonly 字段可用于运行时常数。

3. const 默认就是静态的,而 readonly 如果设置成静态的就必须显示声明。

4.const 对于引用类型的常数,可能的值只能是 string 和 null。readonly可以是任何类型


总结:const只能在初期就使用常量初始化好。对于每一次编译后的结果,const的值是固定的,而readonly的值是可以在运行的时候才确定值的~~


目录
相关文章
|
7月前
|
存储 安全 数据库连接
C#深度揭秘:常量的魅力和实践,一文让你从新手到专家
C#深度揭秘:常量的魅力和实践,一文让你从新手到专家
56 0
|
3月前
|
存储 C# 索引
C# 一分钟浅谈:变量与数据类型简介
【9月更文挑战第1天】在 C# 编程中,了解变量与数据类型至关重要。本文详细介绍了 C# 中的值类型(如整数、浮点数、布尔值等)和引用类型(如类、接口、数组、字符串)。通过示例代码展示了变量的声明与使用方法,并针对数据类型转换错误、变量未初始化及数值溢出等常见问题提供了解决方案。正确选择数据类型不仅能提升程序性能,还可避免潜在错误,有助于编写高质量代码。
133 47
|
19天前
|
开发框架 .NET API
以C#一分钟浅谈:GraphQL 数据类型与查询
本文从C#开发者的角度介绍了GraphQL的基本概念、核心组件及其实现方法。GraphQL由Facebook开发,允许客户端精确请求所需数据,提高应用性能。文章详细讲解了如何在C#中使用`GraphQL.NET`库创建Schema、配置ASP.NET Core,并讨论了GraphQL的数据类型及常见问题与解决方案。通过本文,C#开发者可以更好地理解并应用GraphQL,构建高效、灵活的API。
95 64
|
16天前
|
开发框架 .NET 测试技术
C# 一分钟浅谈:GraphQL 数据类型与查询
本文介绍了GraphQL的基本概念、数据类型及查询方法,重点从C#角度探讨了GraphQL的应用。通过Hot Chocolate库的实例,展示了如何在ASP.NET Core中实现GraphQL API,包括安装、定义Schema、配置及运行项目。文中还讨论了常见问题与解决方案,旨在帮助开发者更好地理解和使用GraphQL。
21 2
|
4月前
|
传感器 开发框架 JSON
聊聊 C# dynamic 类型,并分享一个将 dynamic 类型变量转为其它类型的技巧和实例
聊聊 C# dynamic 类型,并分享一个将 dynamic 类型变量转为其它类型的技巧和实例
199 0
|
4月前
|
Java C#
C# 和 java 基本数据类型
C# 和 java 基本数据类型
23 0
|
6月前
|
开发框架 .NET 编译器
程序与技术分享:C#基础知识梳理系列三:C#类成员:常量、字段、属性
程序与技术分享:C#基础知识梳理系列三:C#类成员:常量、字段、属性
40 2
|
6月前
|
存储 C# 开发者
C# 编程基础:注释、变量、常量、数据类型和自定义类型
C# 编程基础:注释、变量、常量、数据类型和自定义类型
|
6月前
|
存储 Java 编译器
C# 变量与参数详解
C# 变量与参数详解
|
6月前
|
开发框架 .NET 程序员
掌握C#语言的精髓:基础知识与实用技能详解(数据类型与变量+ 条件与循环+函数与模块+LINQ+异常+OOP)
掌握C#语言的精髓:基础知识与实用技能详解(数据类型与变量+ 条件与循环+函数与模块+LINQ+异常+OOP)
34 0