C#学习笔记:变量、常量、数据类型

本文介绍了C#编程中的变量、常量和数据类型,包括值类型、引用类型、指针类型及其默认值。讨论了装箱、拆箱的概念以及可空类型的应用。同时,讲解了数据类型转换的几种方式,如隐式、显示转换,以及自定义转换。此外,还提到了字符串处理、类型检查的as和is操作符,以及泛型和var、dynamic类型的使用。

*代码编写完成后选择“调试|开始调试”菜单命令或按F5键可查看程序运行效果;

*C#的数据类型可以分为值类型、引用类型和指针类型,指针类型不安全,所以一般不推荐使用;
*C#的值类型包括简单类型(字符型、浮点型、整型等)、枚举类型、结构类型,所有值类型默认值为0;
对于字符型,默认为\x0000,对于float,默认为0.0f;
简单类型:sbyte、short、int、long、float、double、char、bool;
枚举类型用关键字enum声明,结构类型用关键字struct声明;
*C#引用类型包括类类型、对象类型、字符串类型、接口类型、委托类型、数组类型等,默认值为null;
字符串类型用关键字string/String声明,接口类型用关键字interface声明,委托类型用关键字delegate声明;

*装箱:值类型转换为引用类型;拆箱:引用类型转换为值类型。装箱后改变值类型的值不会影响引用类型的值;

*可以为null的类型的定义方式:
1.Nullable a;
2.T? a;
可空类型具有两个公共的只读属性:HasValue(bool类型,非空为true)和Value(可空类型的值);
可空类型适用于处理数据库和其他不可赋值的元素的数据类型;

*数据类型的转换:隐式转换,显示转换,用户定义的转换,内置程序类的转换
隐式转换:安全转换,低类型向高类型转换,派生类转换为基类;
显示转换:强制转换,基类转换为派生类;
自定义数据转换:在类或结构上声明转换(声明必须使用static定义)
声明形式:static 访问修饰符 转换修饰符 operator 转换类型(参数)
eg:static public implicit operator A(int value)//把整型隐式转换为A类型
static public explicit operator int(A a)//把A类型显示转换为整型
内置程序类的转换:System.Convert类、数值类型的Parse方法、Object对象的ToString方法
System.Convert类: 将一个基本数据类型转换为另一个基本数据类型(支持的数据类型有Boolean、Char、SByte、Byte、Int16、Int32、Int64、UInt16、UInt32、UInt64、Single、Double、Decimal、DataTime、String)
(例如:int iNumber=System.Convert.ToInt32(12.3);)
数值类型的Parse方法:将文本转换为相应的值类型(例如:string str=”13”;int number=int.Parse(str);
Object对象的ToString方法:把对象转换为相应的字符串(例如:int num1=10;string mynum=num1.ToString();

*string nl=”\n”;string str=String.Format(“{0}88888{0}”,nl);等价于string str=”\n88888\n”;

*为处理类型转换的安全问题引入as、is
as操作符:在兼容的引用类型之间执行转换(as的作用——expression is type?(type)expression:(type)null;)
用法:Object a=new Object();NewObject b=a as NewObject;等价于Object a=new Object(); NewObject b=(NewObject)a;
as只执行引用转换和装箱转换,无法执行其他转换
is操作符:不直接进行数据类型的转换,它用来检查对象是否与给定类型兼容,如果兼容,则is为true

*泛型利用<>符号来定义通用数据类型
*var声明隐式局部类型,编译期间推断数据类型
var使用规则:声明时必须初始化,不能用空类型初始化
*dynamic类型:可以与其他类型相互隐式转换

——摘自《C#4.0程序设计与项目实战》

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值