轻松学习C#的预定义数据类型

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

<span style="font-size:18px;">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();
    }
  }
}</span>

分析: Console.WriteLine("请输入一个整数为圆的半径:");
        int r = Convert.ToInt32(Console.ReadLine());这两句是将输入的返回的字符串转换为整型进行算术运算。代码中的Convert.ToInt32()方法是将字符串转换为整型的方法。
在预定义的数据类型中,引用类型有object(对象)类型和string(字符串)类型两种。
1、object类型是所有其他类型的基类型,所以可把任何类型的值赋给它。
就来看一个关于object类型的例子:

<span style="font-size:18px;">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();
    }
  }
}</span> 

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

2、string类型是用一对双引号引起来的字符,它是通过复制对其赋值的。
通过一个例子来实现字符串赋值是创建一个新的字符串来实现的:

<span style="font-size:18px;">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(); 

    }
  }
}</span>

输出的结果为:

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

以上就是本文的全部内容,希望对大家的学习有所帮助。

(0)

相关推荐

  • 轻松学习C#的基础入门

    C#是一种简单的,安全的,稳定的,由C和C++衍生出来的面向对象的编程语言,它在继承C和C++强大功能的同时,去掉了它们的一些复杂性,综合了Visual Studio简单的可视化操作和C++高效的运行效率,以其强大的操作能力,独特的语法风格,创新的语言特性,便捷的面向组件编程的支持,使其成为.NET开发的首选语言,并成为ECMA和ISO的标准规范.        C#和Java有着惊人的相似,主要包括诸如单一继承,接口,与Java几乎同样的语法和编译成中间代码在运行的过程.但是C#和Java有着

  • 轻松学习C#的正则表达式

    在编写处理字符串的程序时,经常会有查找符合某些复杂规则的字符串的需要.正则表达式就是用于描述这些规则的工具.正则表达式拥有一套自己的语法规则,常见语法包括字符匹配,重复匹配,字符定位,转义匹配和其他高级语法(字符分组,字符替换和字符决策),使用正则表达式时,首先构造正则表达式,这就用到了Regex类.其构造方式有两种:         基本形式Regex(正则表达式)         基本形式Regex(正则表达式,匹配选项) 其中匹配选项是提供一些特殊的帮助,是一个枚举值,包括下面六个值: (

  • 轻松学习C#的装箱与拆箱

    首先看一看什么是装箱和拆箱?        简单的来说:        装箱就是值类型转换为引用类型:        拆箱就是引用类型转换为值类型.        值类型,包括原类型(Sbyte.Byte.Short.Ushort.Int.Uint.Long.Ulong.Char.Float.Double.Bool.Decimal).枚举 (enum) .结构 (struct).        引用类型包括类.数组.接口.委托.字符串等. 装箱:值类型到引用类型或到此值类型所实现的任何接口类型的

  • 轻松学习C#的读写操作

    在看到C#流程控制结构的这一章节,看到了一个很好的关于C#读写操作的一个例子.这个例子就是典型的for迭代语句编写"小九九表". 第一种输出格式的代码: <span style="font-size:18px;"> for (int i = 1; i <=9; i++) { for (int j = 1; j <= i; j++) { Console.Write("{0}*{1}={2}", i, j, i * j); }

  • 轻松学习C#的密封类

    密封类概述        并不是所有的类都可以被继承,C#语言中就是密封类.在C#语言中我们可以把类声明为sealed.这表示不能继承该类,如果想要继承那么编译器肯定会报错.在把类或方法标记为sealed时,最可能出现的情形时:如果要对库,类或自己编写的其他类进行操作,则重写某些功能会导致编译错误.也可以因商业原因把类或方法标记为sealed,以防第三方违反注册协议的方式扩展该类.但是在一般情况下,在把类或方法标记为sealed时要小心,因为这么做会限制它的使用.即使不希望它能继承一个类或重写类

  • 轻松学习C#的属性

    属性是提供对对象或类的特性进行访问的成员.属性提供功能强大的方法将声明信息与C#代码(类型,方法,属性等)相关联.属性的设置包括字符串的长度,字体的大小,窗口的焦点,用户的名字等.         使程序员可以创造新的声明信息的种类,称为属性.属性是对现实世界中实体特征的抽象,是为访问自定义类型的注释信息提供通用的访问方式.属性使类能够以一种公开的思路方法获取和设置值,同时隐藏实现或验证代码.C#的属性具有保护功能,可以让用户像访问域一样访问属性.         属性包括字符串各种信息和字符串

  • 轻松学习C#的方法

    在类中自定义的"函数"称为"方法",由于C#是完全面向对象的语言,同时为了便于解释后面要学的C#类,这里的"方法"来称呼"函数".        方法是一种用于实现可以有对象或类执行的计算机或操作的成员,是一个已命名的语句集.每个方法都有一个名称和主体.方法名应该是一个有意义的标识符,应描述出方法的用途.方法主体包含了调用方法时实际执行的语句.用户可以为大多数方法提供一些数据来进行处理,并让其返回一些信息(通常是处理结果).方

  • 轻松学习C#的结构和类

    类和结构是.NET Framework中的同样类型系统的两种基本构造.两者在本质上都属于数据结构,封装这一组整体作为一个逻辑单位的数据和行为.数据和行为是该类或结构的"成员",它们包含着各自的方法,属性和事件等.        结构        结构是C#程序员用来定义自己的值类型的最普遍的机制.结构比枚举更强大,因为它提供方法,字段,操作符和访问控制等.        结构与类很相似,都表示可以包含数据成员和函数成员的数据结构.但是,与类不同,结构是一种值类型,并且不需要堆分配.结

  • 轻松学习C#的预定义数据类型

    C#的预定义数据类型包括两种,一种是值类型,一种是引用类型.值类型的变量在内存中是存储在堆栈中的,字面上理解就是直接保存其值,如声明一个属于值类型的整型变量,并给它赋予另一个整型变量的值,则在内存中事先复制一个整型变量的值,然后将其赋予刚刚声明的整型变量,这时内存中就会有两个整型值.引用类型的变量在内存中是直接保存其值的引用.C#语言中大多数复杂数据类型都是引用类型.        先来一个值类型的常量的例子        根据用户输入圆的半径,求圆的面积的代码: <span style="

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

    C#的预定义数据类型包括两种,一种是值类型,一种是引用类型.值类型的变量在内存中是存储在堆栈中的,字面上理解就是直接保存其值,如声明一个属于值类型的整型变量,并给它赋予另一个整型变量的值,则在内存中事先复制一个整型变量的值,然后将其赋予刚刚声明的整型变量,这时内存中就会有两个整型值.引用类型的变量在内存中是直接保存其值的引用.C#语言中大多数复杂数据类型都是引用类型. 先来一个值类型的常量的例子 根据用户输入圆的半径,求圆的面积的代码: using System; using System.Co

  • PHP学习之预定义变量(实例讲解)

    超全局变量 超全局变量–超全局变量是全部作用域中始终可用的内置变量 $GLOBALS 一个包含了全部变量的全局组合数组.变量的名字就是数组的键. <?php function test() { $foo = "local variable"; echo '$foo in global scope: ' . $GLOBALS["foo"] . "\n"; echo '$foo in current scope: ' . $foo . &quo

  • php学习笔记 [预定义数组(超全局数组)]

    复制代码 代码如下: <?php /* 预定义数组: * 自动全局变量---超全局数组 * * 1.包含了来自WEB服务器,客户端,运行环境和用户输入的数据 * 2.这些数组比较特别 * 3.全局范围内自动生效,都可以直接使用这些数组 * 4.用户不能自定义这些数组,但这些数组的操作方式和自己定义的数组操作的方式一样 * 5.在函数中直接可以使用这些数组 * * $_GET //经由URL请求提交至脚本的变量 * $_POST //经由HTTP POST 方法提交到脚本的变量 * $_REQUE

  • ASP.NET预定义模板介绍

    一. 实例演示:通过模板将布尔值显示为RadioButton 在默认的情况下,不论是对于编辑模式还是显示模式,一个布尔类型的属性值总是以一个CheckBox的形式呈现出来.我们创建如下一个表示员工的类型Employee,它具有一个布尔类型的属性IsPartTime表示该员工是否为兼职. public class Employee { [DisplayName("姓名")] public string Name { get; set; } [DisplayName("部门&qu

  • PHP的PDO预定义常量讲解

    PHP PDO预定义常量 以下常量由本扩展模块定义,因此只有在本扩展的模块被编译到PHP中,或者在运行时被动态加载后才有效. 注意:PDO使用类常量自PHP 5.1.以前的版本使用的全局常量形式PDO_PARAM_BOOL中. PDO::PARAM_BOOL (integer) 表示布尔数据类型. PDO::PARAM_NULL (integer) 表示 SQL 中的 NULL 数据类型. PDO::PARAM_INT (integer) 表示 SQL 中的整型. PDO::PARAM_STR

  • XML轻松学习手册(三):XML的术语

    提纲: 导言 一.XML文档的有关术语 二.DTD的有关术语 导言 初学XML最令人头疼的就是有一大堆新的术语概念要理解.由于XML本身也是一个崭新的技术,正在不断发展和变化,各组织和各大网络公司(微软,IBM,SUN等)都在不断推出自己的见解和标准,因此新概念漫天飞就不足为奇了.而国内又缺乏权威的机构或组织来对这些术语正式定名,你所看见的有关XML的中文教材大部分是靠作者本身的理解翻译过来的,有些是正确的,有些是错误的,更加妨碍了我们对这些概念的理解和学习. 你下面将要看到的关于XML术语的解

  • XML轻松学习手册(3)XML的术语

    第三章 XML的术语提纲: 导言 一.XML文档的有关术语 二.DTD的有关术语 导言 初学XML最令人头疼的就是有一大堆新的术语概念要理解.由于XML本身也是一个崭新的技术,正在不断发展和变化,各组织和各大网络公司(微软,IBM,SUN等)都在不断推出自己的见解和标准,因此新概念漫天飞就不足为奇了.而国内又缺乏权威的机构或组织来对这些术语正式定名,你所看见的有关XML的中文教材大部分是靠作者本身的理解翻译过来的,有些是正确的,有些是错误的,更加妨碍了我们对这些概念的理解和学习. 你下面将要看到

  • 轻松学习XML教程

    传统上,我们浏览网页,如果加入最新的数据.只能是等我们重新向服务器端请求时才能显示出来. 但是,对于一些时效性很强的网站.传统的这种做法是不能满足的. XML越来越热,关于XML的基础教程网络上也随处可见.可是一大堆的概念和术语往往让人望而生畏,很多朋友问我:XML到底有什么用,我们是否需要学习它?我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章.首先有两点是需要肯定的: 第一:XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解,等待只会让你失去机会: 第

  • XML轻松学习手册(2)XML概念

    第二章 XML概念 导言 经过第一章的快速入门学习,你已经知道了XML是一种能够让你自己创造标识的语言,它可以将数据与格式从网页中分开,它可以储存数据和共享数据的特性使得XML无所不能.如果你希望深入学习XML,系统掌握XML的来龙去脉,那么我们首先还是要回到XML概念的问题上来.XML(Extensible Markup Language),一种扩展性标识语言."扩展性"标识"语言".每一个词都明确的点明了XML的重要特点和功能.我们来仔细分析: 一. 扩展性 二

随机推荐