当前位置: 首页 > 编程笔记 >

C#预定义数据类型之值类型和引用类型介绍

段干俊茂
2023-03-14
本文向大家介绍C#预定义数据类型之值类型和引用类型介绍,包括了C#预定义数据类型之值类型和引用类型介绍的使用技巧和注意事项,需要的朋友参考一下

C#的预定义数据类型包括两种,一种是值类型,一种是引用类型。值类型的变量在内存中是存储在堆栈中的,字面上理解就是直接保存其值,如声明一个属于值类型的整型变量,并给它赋予另一个整型变量的值,则在内存中事先复制一个整型变量的值,然后将其赋予刚刚声明的整型变量,这时内存中就会有两个整型值。引用类型的变量在内存中是直接保存其值的引用。C#语言中大多数复杂数据类型都是引用类型。

先来一个值类型的常量的例子

根据用户输入圆的半径,求圆的面积的代码:

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

namespace area
{
  class Program
  {
    static void Main(string[] args)
    {
      const double PI = 3.14;
      Console.WriteLine("请输入一个整数为圆的半径:");
      int r = Convert.ToInt32(Console.ReadLine());
      double Area = PI * r * r;
      Console.WriteLine("所求圆的面积为:"+Area);
      Console.ReadLine();
    }
  }
}

分析: Console.WriteLine("请输入一个整数为圆的半径:");
int r = Convert.ToInt32(Console.ReadLine());这两句是将输入的返回的字符串转换为整型进行算术运算。代码中的Convert.ToInt32()方法是将字符串转换为整型的方法。

在预定义的数据类型中,引用类型有object(对象)类型和string(字符串)类型两种。
      
1、object类型是所有其他类型的基类型,所以可把任何类型的值赋给它。
就来看一个关于object类型的例子:

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

namespace objectType
{
  class Program
  {
    static void Main(string[] args)
    {
      object a;
      a = 10;
      Console.WriteLine(a);
      Console.WriteLine(a.GetType());
      a = true;
      Console.WriteLine(a);
      Console.WriteLine(a.GetType());
      a = 10.0M;
      Console.WriteLine(a);
      Console.WriteLine(a.GetType());
      Console.ReadLine(); 
    }
  }
}

分析:代码中的GetType()方法是获取变量的数据类型。第一次将整型值赋值给a,其次是布尔型,最后是decimal型。输出的结果为:从输出的结果可以体现出C#语言的类型强大功能

2、string类型是用一对双引号引起来的字符,它是通过复制对其赋值的。

通过一个例子来实现字符串赋值是创建一个新的字符串来实现的:

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

namespace str
{
  class Program
  {
    static void Main(string[] args)
    {
      string str1 = "hello";
      string str2 = str1;
      Console.WriteLine("str1=" + str1);
      Console.WriteLine("str2=" + str2);
      str1 = "after";
      Console.WriteLine("str1=" + str1);
      Console.WriteLine("str2=" + str2);
      Console.ReadLine();
 
    }
  }
}

输出的结果为:

从输出的结果来看:在修改一个字符串的时候,实际上是创建了一个新的字符串,而并非修改了原来的字符串。

 类似资料:
  • 本文向大家介绍JavaScript数据类型之基本类型和引用类型的值,包括了JavaScript数据类型之基本类型和引用类型的值的使用技巧和注意事项,需要的朋友参考一下 ECMAScript变量包含两种不同数据类型的值:基本类型值和引用类型值。基本类型值是简单的数据段,而引用类型值指那些可能由多个值构成的对象。 在将一个值赋给变量时,解析器必须确定这个值是基本类型还是引用类型。基本类型包括如Unde

  • 本文向大家介绍浅析C# 中的类型系统(值类型和引用类型),包括了浅析C# 中的类型系统(值类型和引用类型)的使用技巧和注意事项,需要的朋友参考一下 今天要写的东西都是书中一些概念性的东西,就当抄笔记,以提问对话的方式将其写出来吧,说不定以后面试能有点谈资~~~   Q1.C#1系统类型包含哪三点特性?   A1.C#1类型系统是静态的、显式的和安全的。   Q2.为什么称为静态类型?   A2.静

  • 由于Solidity是一个静态类型的语言,所以编译时需明确指定变量的类型(包括本地变量或状态变量),Solidity编程语言提供了一些基本类型(elementary types)可以用来组合成复杂类型。 类型可以与不同运算符组合,支持表达式运算,你可以通过表达式的执行顺序(Order of Evaluation of Expressions)来了解执行顺序。 值类型(Value Type) 值类型

  • 本页包含内容: 值类型与引用类型的区别 Mutation(修改)在安全中扮演的角色 如何选择类型 Swift里面的类型分为两种: 值类型(Value Types):每个实例都保留了一分独有的数据拷贝,一般以结构体 (struct)、枚举(enum) 或者元组(tuple)的形式出现。 引用类型(Reference Type):每个实例共享同一份数据来源,一般以类(class)的形式出现。 在这篇博

  • Date类型的创建 创建时间对象是由关键字new和构造函数Date()来创建的。 var d = new Date(); Date()中保存的是从1979年1月1日零时开始经过的毫秒数,再划分为年/月/日/时/分/秒/毫秒、周。 在调用Date()函数而不传入参数的情况下,将自动获得当前的日期和时间, var d = new Date(); document.write(d); //Fri Ma

  • 函数的创建方法 函数也是对象,每个函数是Function类的一个实例,函数是对象,因此函数名就是指向函数对象的指针,函数的定义常见的有两种: 1、使用关键字function声明,也就是 函数声明。 function sum (num1, num2) { return num1 + num2; } 2、将匿名函数赋值给一个变量,也就是 函数表达式。 var sum = function (n