C#学习之路-数据类型

这篇具有很好参考价值的文章主要介绍了C#学习之路-数据类型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

  • 值类型(Value types)
  • 引用类型(Reference types)
  • 指针类型(Pointer types)

值类型(Value types)

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

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

下表列出了 C# 2010 中可用的值类型:

C#学习之路-数据类型,学习

 下面举例获取任何机器上 int 类型的存储尺寸:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

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

C#学习之路-数据类型,学习

 引用类型(Reference types)

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

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

对象(Object)类型

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

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

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

动态(Dynamic)类型

您可以存储任何类型的值在动态数据类型变量中。这些变量的类型检查是在运行时发生的。

dynamic d = 20;

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

字符串(String)类型

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

String str1 = "welcome to ";
String str2 = @"runoob.com";

C#学习之路-数据类型,学习

 C#学习之路-数据类型,学习

 指针类型(Pointer types)

指针类型变量存储另一种类型的内存地址。C# 中的指针与 C 或 C++ 中的指针有相同的功能。

声明指针类型的语法:文章来源地址https://www.toymoban.com/news/detail-537400.html

type* identifier;

到了这里,关于C#学习之路-数据类型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • C#学习之路-循环

    有的时候,可能需要多次执行同一块代码。一般情况下,语句是顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。 编程语言提供了允许更为复杂的执行路径的多种控制结构。 循环语句允许我们多次执行一个语句或语句组,下面是大多数编程语言中循

    2024年02月13日
    浏览(36)
  • C#学习之路-封装

    封装  被定义为\\\"把一个或多个项目封闭在一个物理的或者逻辑的包中\\\"。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。 抽象和封装是面向对象程序设计的相关特性。抽象允许相关信息可视化,封装则使开发者 实现所需级别的抽象 。 C# 封装根据具体的需

    2024年02月13日
    浏览(33)
  • 【Redis高手修炼之路】②Redis的五大数据类型

    字符串是Redis最基础的数据类型: 字符串类型实际可以存储字符串、数字、二进制数据; Redis中的键都是字符串类型,值也支持字符串类型; 字符串类型的存储空间是有限的,最大可以存放512M的数据。 1.1.1 添加、查询、获取长度、字符串的追加 set key value 设置指定 key 的值 get

    2023年04月19日
    浏览(33)
  • 【C#学习笔记】类型转换

    我们简单地将值类型分为5种:整数型,浮点型,布尔型,字符型,再加上一个本属于引用类型的字符串。 由于 C# 是在编译时静态类型化的,因此变量在声明后就无法再次声明,或无法分配另一种类型的值,除非该类型可以隐式转换为变量的类型。 隐式转换 :由于这种转换

    2024年02月14日
    浏览(34)
  • 【C#学习笔记】引用类型(1)

    引用类型的变量存储对其数据(对象)的引用,而值类型的变量直接包含其数据。 对于引用类型,两种变量可引用同一对象;因此,对一个变量执行的操作会影响另一个变量所引用的对象。 对于值类型,每个变量都具有其自己的数据副本,对一个变量执行的操作不会影响另

    2024年02月14日
    浏览(37)
  • 【C#学习笔记】引用类型(2)

    支持 .NET 类层次结构中的所有类,并为派生类提供低级别服务。 这是所有 .NET 类的最终基类;它是类型层次结构的根。 简单来说,它是万能的,它是所有类型的父类。因为.NET 中的所有类都派生自 Object,因此 Object 类中定义的每个方法都可用于系统中的所有对象。 在 Object

    2024年02月14日
    浏览(40)
  • C#学习 - 初识类型、变量、方法

    、操作符、标识符、文本都是标记(Token),编译器能够识别 C#有一般(C# Keyword:任何时候都是)和上下文(Contextual Keywords:在某些语境中时是) 也成为运算符,某些也是操作符 标识符就是名字,比如给变量取的名字 取名规范 :不

    2024年02月09日
    浏览(29)
  • C#学习笔记--变量类型的转换

    转换原则 同类型的大的可以装小的,小类型的装大的就需要强制转换。 隐式转换: 同种类型的转换: 不同类型的转换: char类型可以隐式转换成数值型,根据对应的ASCII码来进行转换。 无符号的无法隐式存储有符号的,而有符号的可以存储无符号的。 显示转换 括号强转(注

    2024年02月08日
    浏览(36)
  • C# int和uint类型学习

    在C#中,使用int表示整数类型,对应于.NET的System.Int32结构; C#中的int类型占4字节(4*8=32位)内存空间,其范围从-2,147,483,648 到 2,147,483,647; int类型是默认的整数类型,并且默认值是0; uint类型也是整数类型,占4字节(32位)内存空间,范围是0-4294967295之间的正整数,对应于.NET的

    2024年02月12日
    浏览(32)
  • C# 学习笔记2-控制流与类型转换

    关于变量的简单操作 判断 循环 类型转换 异常处理 检查数字类型的溢出 一元运算符 Unary operators x++ , ++x , x-- , --x 。 这些运算符同 C++。 postfix operator 后置运算符 还有 typeof(int) , sizeof(int) 。 二元运算符 Binary arithmetic operators 无非是: + 、 - 、 * 、 / 、 % modulus 模 remaind

    2024年02月02日
    浏览(27)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包