C# 基础知识(三)_标识符,关键字,数据类型,类型转换

目录

C# 基础知识(三)_标识符,关键字,数据类型,类型转换

标识符

关键字

数据类型

值类型(Value types)

引用类型(Reference types)

类型转换

C# 类型转换方法


C# 基础知识(三)_标识符,关键字,数据类型,类型转换

标识符

标识符是用来识别类、变量、函数或任何其它用户定义的项目。在 C# 中,类的命名必须遵循如下基本规则:

标识符必须以字母、下划线或 @ 开头,后面可以跟一系列的字母、数字( 0 - 9 )、下划线( _ )、@。

标识符中的第一个字符不能是数字。

标识符必须不包含任何嵌入的空格或符号,比如 ? - +! # % ^ & * ( ) [ ] { } . ; : " ' / \。

标识符不能是 C# 关键字。除非它们有一个 @ 前缀。 例如,@for 是有效的标识符,但 for不是,因为 for 是关键字。

标识符必须区分大小写。大写字母和小写字母被认为是不同的字母。

不能与C#的类库名称相同。

关键字

关键字是 C# 编译器预定义的保留字。这些关键字不能用作标识符,但是,如果您想使用这些关键字作为标识符,可以在关键字前面加上 @ 字符作为前缀。

数据类型

在 C# 中,变量分为以下几种类型:

值类型(Value types)

引用类型(Reference types)

指针类型(Pointer types)

值类型(Value types)

值类型变量可以直接分配给一个值。它们是从类 System.ValueType 中派生的。

值类型直接包含数据。比如 int、char、float,它们分别存储数字、字符、浮点数。当您声明一个 int 类型时,系统分配内存来存储值。

C#中sizeof方法用于获取值类型的字节大小:

using System;

namespace Notes
{
    class Program
    {
        static void Main(string[] args)
        {

            Console.WriteLine("int类型的存储字节大小:" + sizeof(int));
            Console.WriteLine("float类型的存储字节大小:" + sizeof(float));
            Console.WriteLine("double类型的存储字节大小:" + sizeof(double));

            Console.ReadKey();

        }
    }
}

引用类型(Reference types)

引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用地址。

换句话说,它们指的是一个内存位置。使用多个变量时,引用类型可以指向一个内存位置。如果内存位置的数据是由一个变量改变的,其他变量会自动反映这种值的变化。内置的引用类型有:object、dynamic 和 string。

1) 对象类型(Object)

对象类型是 C# 通用类型系统(Common Type System:CTS)中所有数据类型的最终基类,Object 是 System.Object 类的别名。任何类型的值都可以分配给对象类型,但是在分配值之前,需要对类型进行转换。

将值类型转换为对象类型的过程被称为“装箱”,反之将对象类型转换为值类型的过程则被称为“拆箱”。注意,只有经过装箱的数据才能进行拆箱。

object o;
int i = 99;
o = i;//装箱,将值类型转成引用类型  int->object
i = (int)o;//拆箱,将引用类型转成值类型  object->int

2) 动态类型(Dynamic)

可以在动态类型的变量中存储任何类型的值,这些变量的类型检查是在程序运行时进行的。

dynamic i = 100;
dynamic f = 100.1f;
dynamic d = 100.10001d;
dynamic s = "hello world";

动态类型与对象类型类似,但对象类型变量的类型检查是在编译时进行的,而动态类型变量的类型检查则是在程序运行时进行的。

3) 字符串(String)类型

字符串(String)类型允许您给变量分配任何字符串值。字符串(String)类型是 System.String 类的别名。它是从对象(Object)类型派生的。字符串(String)类型的值可以通过两种形式进行分配:引号和 @引号。

例子:

string str= "Wu_Note";
string str1=@"Wu_Note";

两行代码描述的字符串是一样的。

@在含有转义字符(\)的字符串前面能否把转义字符当作普通字符。在window的地址声明常见:

例子:

string path= @"C:\Program Files";
string path1= "C:\\Program Files";

两行代码描述的字符串是一样的。

@ 字符串中可以任意换行,换行符及缩进空格都计算在字符串长度之内。

string html = @"<script type=""text/javascript""> <!-- --> </script>";

4)用户自定义引用类型有:类(class),接口(interface),委托( delegate)。

指针类型(Pointer types)

指针类型变量存储另一种类型的内存地址。C# 中的指针与 C 或 C++ 中的指针有相同的功能。(暂时用不到,了解即可)

例子:

char* cptr;
int* iptr;

类型转换

类型转换其实就是把数据从一种类型转换为另一种类型。转换时有两种形式:

隐式类型转换:隐式转换是C# 默认的以安全方式进行的转换, 不会导致数据丢失。例如,从小的整数类型转换为大的整数类型,从派生类转换为基类。(个人解释:就是把小盒子里的东西放进大盒子里面)。

显示类型转换:显示类型转换又叫强制类型转换。显式转换需要强制转换运算符,而且强制转换会造成数据丢失。(个人解释:大盒子的东西装到小盒子里面,如果多出来了的东西就容易丢了)。

例子:

using System;

namespace Note
{
    class Program
    {
        static void Main(string[] args)
        {
            double d = 3.1415926d;
            int i;
            i = (int)d;
            Console.WriteLine("强制转换完的值:"+i);
            Console.ReadKey();

        }
    }
}

C# 类型转换方法

C# 提供了下列内置的类型转换方法:

例子:

using System;

namespace Note
{
    class Program
    {
        static void Main(string[] args)
        {

            string iStr = "1111";
            int i = int.Parse(iStr);
            Console.WriteLine("转换完的值:" + i);

            string fStr = "3.14";
            float f = float.Parse(fStr);
            Console.WriteLine("转换完的值:" + f);
            Console.ReadKey();

        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值