unity的C#学习——标识符号、关键字与数据类型及其转换方式

这篇具有很好参考价值的文章主要介绍了unity的C#学习——标识符号、关键字与数据类型及其转换方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

标识符号

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

  1. 标识符必须以字母、下划线或 @ 开头,后面可以跟一系列的字母、数字( 0 - 9 )、下划线( _ )、@。
  2. 标识符中的第一个字符不能是数字。
  3. 标识符必须不包含任何嵌入的空格或符号,比如 ? - +! # % ^ & * ( ) [ ] { } . ; : " ’ / \。
  4. 标识符不能是 C# 关键字。除非它们有一个 @ 前缀。 例如,@if 是有效的标识符,但 if 不是,因为 if 是关键字。
  5. 标识符必须区分大小写。大写字母和小写字母被认为是不同的字母。
  6. 不能与C#的类库名称相同。

关键字

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

在 C# 中,有些关键字在代码的上下文中有特殊的意义,如 get 和 set,这些被称为上下文关键字(contextual keywords)。下表列出了 C# 中的保留关键字(Reserved Keywords)和上下文关键字(Contextual Keywords):

保留关键字
abstract as base bool break byte
case catch char checked class const
continue decimal default delegate do double
else enum event explicit extern false
finally fixed float for foreach goto
if implicit in int interface internal
is lock long namespace new null
object operator out override params private
protected public readonly ref return sbyte
sealed short sizeof stackalloc static string
struct switch this throw true try
typeof uint ulong unchecked unsafe ushort
using virtual void volatile while
上下文关键字
add alias ascending descending dynamic from
get global group into join let
orderby partial (type) partial (method) remove select set

数据结构

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

1、值类型(Value types)

值类型变量可以直接被分配一个值。

值类型是从类 System.ValueType 中派生的,直接包含数据,例如:int、char、float,它们分别存储数字、字符、浮点数。当声明一个 int 类型时,系统分配内存来存储值。下表列出了 C# 中可用的值类型:

类型 描述 范围 默认值
bool 布尔值 True 或 False False
byte 8 位无符号整数 0 到 255 0
char 16 位 Unicode 字符 U +0000 到 U +ffff ‘\0’
decimal 128 位精确的十进制值,28-29 有效位数 (- 7.9 × 1 0 28 7.9 \times 10^{28} 7.9×1028 7.9 × 1 0 28 7.9 \times 10^{28} 7.9×1028) / 1 0 0 到 28 10^{0 到 28} 10028 0.0M
double 64 位双精度浮点型 (+/-) 5.0 × 1 0 − 324 5.0 \times 10^{-324} 5.0×10324 到 (+/-) 1.7 × 1 0 308 1.7 \times 10^{308} 1.7×10308 0.0D
float 32 位单精度浮点型 - 3.4 × 1 0 38 3.4 \times 10^{38} 3.4×1038 到 + 3.4 × 1 0 38 3.4 \times 10^{38} 3.4×1038 0.0F
int 32 位有符号整数类型 -2,147,483,648 到 2,147,483,647 0
long 64 位有符号整数类型 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 0L
sbyte 8 位有符号整数类型 -128 到 127 0
short 16 位有符号整数类型 -32,768 到 32,767 0
uint 32 位无符号整数类型 0 到 4,294,967,295 0
ulong 64 位无符号整数类型 0 到 18,446,744,073,709,551,615 0
ushort 16 位无符号整数类型 0 到 65,535 0

表达式 sizeof(type) 产生以字节为单位存储对象或类型的存储尺寸:

using System;

namespace DataTypeApplication
{
   class Program
   {
      static void Main(string[] args)
      {
         Console.WriteLine("Size of int: {0}", sizeof(int));
         Console.ReadLine();
      }
   }
}

2、引用类型(Reference types)

2.1 对象(Object)类型

对象(Object)类型 是 C# 通用类型系统(Common Type System - CTS)中所有数据类型的终极基类。Object 是 System.Object 类的别名。所以对象(Object)类型可以被分配任何其他类型(值类型、引用类型、预定义类型或用户自定义类型)的值。但是,在分配值之前,需要先进行类型转换。

当一个值类型转换为对象类型时,则被称为装箱;另一方面,当一个对象类型转换为值类型时,则被称为拆箱

object obj;
obj = 100; // 这是装箱

2.2 动态(Dynamic)类型

可以存储任何类型的值在动态数据类型变量中,这些变量的类型检查是在运行时发生的。声明动态类型的语法:dynamic <variable_name> = value;,例如:

dynamic d = 20;

动态类型与对象类型相似,但是对象类型变量的类型检查是在编译时发生的,而动态类型变量的类型检查是在运行时发生的。

2.3 字符串(String)类型

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

例如:

String str = "runoob.com";

一个 @引号字符串:

@"runoob.com";

C# string 字符串的前面可以加 @(称作"逐字字符串")将转义字符(\)当作普通字符对待,比如:

string str = @"C:\Windows";

等价于:

string str = "C:\\Windows";

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

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

3、指针类型(Pointer types)

指针类型变量存储另一种类型的内存地址。C# 中的指针与 C 或 C++ 中的指针有相同的功能。声明指针类型的语法:type* identifier,例如:

char* cptr;
int* iptr;

4、类型转换

4.1 隐式类型转换

隐式转换是指将一个较小范围的数据类型转换为较大范围的数据类型时,可以直接通过赋值操作实现,编译器会自动完成类型转换,这些转换是 C# 默认的以安全方式进行的转换, 不会导致数据丢失。

例如,从小的整数类型转换为大的整数类型,从派生类转换为基类。将一个 byte 类型的变量赋值给 int 类型的变量,编译器会自动将 byte 类型转换为 int 类型,不需要显示转换。

byte b = 10;
int i = b; // 隐式转换

4.2 显式类型转换

显式类型转换(目标类型) 表达式,即强制类型转换。

显式转换是指将一个较大范围的数据类型转换为较小范围的数据类型时,或者将一个对象类型转换为另一个对象类型时,需要使用强制类型转换符号进行显示转换,强制转换会造成数据丢失。

例如,将一个 int 类型的变量赋值给 byte 类型的变量,需要显示转换。

int i = 10;
byte b = (byte)i; // 显式转换,需要使用强制类型转换符号

4.3 类型转换方式

除了上述两种方式,C#还内置了一些方法(函数)来实现数据类型转换:

序号 方法 & 描述
1 ToBoolean:如果可能的话,把类型转换为布尔型。
2 ToByte:把类型转换为字节类型。
3 ToChar:如果可能的话,把类型转换为单个 Unicode 字符类型。
4 ToDateTime:把类型(整数或字符串类型)转换为日期-时间结构。
5 ToDecimal:把浮点型或整数类型转换为十进制类型。
6 ToDouble:把类型转换为双精度浮点型。
7 ToInt16:把类型转换为 16 位整数类型。
8 ToInt32:把类型转换为 32 位整数类型。
9 ToInt64:把类型转换为 64 位整数类型。
10 ToSbyte:把类型转换为有符号字节类型。
11 ToSingle:把类型转换为小浮点数类型。
12 ToString:把类型转换为字符串类型。
13 ToType:把类型转换为指定类型。
14 ToUInt16:把类型转换为 16 位无符号整数类型。
15 ToUInt32:把类型转换为 32 位无符号整数类型。
16 ToUInt64:把类型转换为 64 位无符号整数类型。

示例代码如下:

namespace TypeConversionApplication
{
    class StringConversion
    {
        static void Main(string[] args)
        {
            int i = 75;
            float f = 53.005f;
            double d = 2345.7652;
            bool b = true;

            Console.WriteLine(i.ToString());
            Console.WriteLine(f.ToString());
            Console.WriteLine(d.ToString());
            Console.WriteLine(b.ToString());
            Console.ReadKey();
           
        }
    }
}

执行上述代码,将在控制台窗口输出如下内容:

75
53.005
2345.7652
True文章来源地址https://www.toymoban.com/news/detail-788612.html

到了这里,关于unity的C#学习——标识符号、关键字与数据类型及其转换方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C# const关键字学习

    你居然不知道const?今天在做项目的时候别人问我的,我确实不知道这个,今天我们就来一起学习一下const定义局部变量,这个对于常数变量非常的友好的,可以提高程序的运行效率,因为它是在编译时的操作,所以我们必须要学习一下,这不就是提

    2024年01月22日
    浏览(37)
  • 第02章_变量与运算符(关键字,标识符,变量,基本数据类型,进制,运算符,字符集)

    定义: 被Java语言赋予了特殊含义,用做专门用途的字符串(或单词) HelloWorld案例中,出现的有 class 、 public 、 static 、 void 等,这些单词已经被Java定义好了。 特点:全部都是 小写字母 。 比较多,不需要死记硬背,学到哪里记到哪里即可。 官方地址:

    2024年01月22日
    浏览(41)
  • 【面试题精讲】标识符和关键字的区别是什么

    “ 有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准 https://blog.zysicyj.top ” 首发博客地址 [1] 面试题手册 [2] 系列文章地址 [3] 标识符 :在编程语言中,标识符是用来表示变量、函数、类等命名实体的名称。它由一系列字符组成,可以包含字母

    2024年02月07日
    浏览(36)
  • Java程序设计入门教程--标识符和关键字

    目录 标识符 标识符的约定 1. 定义 用来 标识类名,变量名,方法名,类型名,数组名,文件名的有效序列称为标识符。简单地说,标识符就是一个名字 。 2. 标识符命名规则 (1)大小写有别,例如 a 和 A 是两个变量, Boy 和 boy 是不同的标识符。 (2)长度任意。 (3)可以

    2024年02月07日
    浏览(28)
  • 【Java探索之旅】我与Java的初相识(完):注释,标识符,关键字

    🎥 屿小夏 : 个人主页 🔥个人专栏 : Java入门到精通 🌄 莫道桑榆晚,为霞尚满天! 在Java编程中,注释、标识符和都是非常重要的概念。注释可以帮助我们更好地理解和维护代码,而规范的标识符命名和避免冲突可以提高代码的可读性和可维护性。本文将介

    2024年02月04日
    浏览(34)
  • Go,从命名开始!Go的关键字和标识符全列表手册和代码示例!

    关注TechLeadCloud,分享互联网架构、云服务技术的全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。 (Keywords)是编程

    2024年02月10日
    浏览(28)
  • 【Go 基础篇】Go语言关键字和预定义标识符解析:探索编程的基石与核心要素

    在计算机编程中,(Keywords)和预定义标识符(Predefined Identifiers)是编程语言的核心要素,它们在语法结构和语言功能中起到重要作用。在Go语言(Golang)中,和预定义标识符定义了编程的基本规则和构建块,是实现功能的关键。本篇博客将深入探讨Go语言中的关

    2024年02月12日
    浏览(44)
  • C# -- static 关键字

    一、static static ,用于修饰类,字段,属性,方法,构造方法等。被 static 修饰的类称之为“静态类”; 被 static 修饰的成员称之为“静态成员”,被修饰过的成员分别称为:静态字段,静态属性,静态方法,静态构造方法。 二、静态字段 1.概念 被 static

    2023年04月19日
    浏览(22)
  • 初始Go语言2【标识符与关键字,操作符与表达式,变量、常量、字面量,变量作用域,注释与godoc】

      go变量、常量、自定义类型、包、函数的命名方式必须遵循以下规则: 首字符可以是任意Unicode字符或下划线。 首字符之外的部分可以是Unicode字符、下划线或数字。 名字的长度无限制。 理论上名字里可以有汉字,甚至可以全是汉字,但实际中不要这么做。 Go语言

    2023年04月09日
    浏览(33)
  • 【C++】C 语言 和 C++ 语言中 const 关键字分析 ( const 关键字左数右指原则 | C 语言中常量的原理和缺陷 | C++ 语言中常量原理 - 符号表存储常量 )

    【C 语言】const 用法 ( 常量指针 - const 在 * 左边 - 修饰数据类型 - 内存不变 | 指针常量 - const 在 * 右边 - 修饰变量 - 指针不变 ) 普通类型数据的常量定义时 , const 在 数据类型 的 左边 和 右边 其作用 是相同的 ; 指针数据的相关常量类型 : const 在 指针符号

    2024年02月11日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包