• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#编程自学之数据类型和变量一

C#编程自学之数据类型和变量一

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c站,c语言,欲情 c max,奔驰c200,85度c等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

一、数据类型与变量的介绍
在程序运行的过程中计算机需要记录大量的状态 数据(这里我们统称数据)。那这些数据都存放在哪呢?程序在运行过程中的数据一般都存放在内存。那么他们在内存中如何存放的一种描述就是数据类型。变量则就是数据类型的实体。那么我们来看一个例子: 假如现在需要设计一个程序计算整数 10 与 20 的和, 请看如下代码:

using System; 
   
namespace MyProgram 
{ 
  class Program 
  { 
    static void Main(string[] args) 
    { 
      //变量的定义格式: 
      //数据类型 变量名 赋值运算符 值 
      int a = 10; // 定义一个整数类型的变量a 并赋值10 
      int b = 20; // 定义一个整数类型的变量b 并赋值20 
   
      int c = a + b;//定义一个整数类型的变量b 赋值为 a + b 的和 
         
      Console.WriteLine("10 + 20 = "+c.ToString());//打印结果 
    } 
  } 
}
</div>

分析: 首先要计算整数10与20的和,肯定需要有地方来放(在内存中存储)它们,既然计算整数那么我们就用整数的数据类 型int 定义名字为a 和 b的变量来分别存放10 和 20,在通过加法运算符将和存放在变量c中。调用我们之前了解过的控制台类将结果输出到控制台显示出来,这里要注意c.ToString(), 因为我们计算的是整数,所使用变量的类型都是整数,而控制台输出的是字符串,所以我们需要将调用int类型的一个行为ToString()将自己转换为字符串类型!这部分将在数据类型的第三篇中介绍!

二、C#基本数据类型与变量

1.数据类型

C#的数据类型分为两类:一种是值类型 一种是引用类型 (值类型与引用类型将在数据类型的第二篇中介绍),那么我们来看看C#的常用数据类型。

 

2.匿名类型

了解C#常用的基础数据类型以后,我们在来看看匿名类型,什么是匿名类型呢?
匿名类型:匿名类型就是在变量初始化后根据所赋的值来判断它属于哪个类型。不明白没关系,举个例子:

using System; 
   
namespace MyProgram 
{ 
  class Program 
  { 
    static void Main(string[] args) 
    { 
      int a = 20; //定义一个整数类型的变量 
      char b = 'A';//定义一个字符类型的变量 
   
      var _intType = 20; //定义一个匿名类型的变量 给赋值一个整数数字 20 
      var _charType = 'A'; //定义一个匿名类型的变量 给赋值一个字符 A 
   
      Console.WriteLine(" a 的数据类型为:{0}",a.GetType().ToString()); //打印出变量a的数据类型 
      Console.WriteLine(" b 的数据类型为:{0}", b.GetType().ToString()); //打印出变量b的数据类型 
   
      Console.WriteLine(" _intType 的数据类型为:{0}", _intType.GetType().ToString());//打印出变量_intType的数据类型 
      Console.WriteLine(" _charType 的数据类型为:{0}", _charType.GetType().ToString());//打印出变量_charType的数据类型 
    } 
  } 
}
</div>

首先看 9 ~ 10行,定义了一个整数类型的变量a赋值为20和一个字符类型的变量b为赋值为A,那么 a与b的数据类型分别为整数类型(System.Int32与System.Char).
接着看 12 ~ 13行,定义了两个匿名类型的变量为: _intType,_charType,分别给 _intType赋了一个整数的值为20,给_charType赋了一个字符为A。在程序运行之前编译器会根绝变量所赋的值来自动判断数据类型。
程序执行结果如下:

提示:匿名类型变量在编译后确定数据类型之后,在程序作用域内该变量的数据类型不可改变!

3.变量与变量的作用域
变量:经过上面的例子与介绍应该已经对变量不陌生了,变量就是数据类型的实例。真正用来存放数据的内存空间或存放数据内存空间地址。
作用域:作用域就是程序使用该变量的一个范围。一般变量作用域的边界是由符号{与}来划定界限的,也就是说在{}内定义的变量,就只能在{}内部来调用。
C#的作用域可分为两种级别:
1.类属性级别:当变量定义为类的属性是,变量的作用域为整个类的内部可访问。
2.局部级别:当变量被定义在方法或者语句块中,变量的作用域为最近的{}之间可访问,局部级别的变量必须初始化。
关于作用域的问题:
1.当一个类定义的变量(属性)与该类方法中定义的局部变量重名时会怎么样?
答:当前作用域中的变量与上级作用域中的变量重名时,以当前作用域中的变量为准。
2.当一个类定义的变量(属性)重名或者类方法中定义的局部变量重名时会怎么样?
答:同一个作用于中不能出现相同名称的变量
参考代码:

class MyClass 
{ 
  int a = 10; 
   
  public void MyMethod() 
  { 
    int a = 20; //方法内部变量与类属性变量 a同时出现时, 以当前方法内(作用域的变量为准) 
    Console.WriteLine("a:{0}",a); //输出结果为20 
   
    int a = 30; // 编译错误,同一个作用域内不可以出现相同名称的变量 
  } 
}
</div>

三、数据类型默认值与初始化
C#中类定义属性可以不用初始化,那么他们的值分别是什么呢? 未赋值的变量会被自动赋予一个合适的默认值。
例如:
int 类型(数值类型)默认值为0
bool 类型 默认值为false
char 类型 默认值为 ‘\0'
我们还可以在定义类属性是就初始化他们的值,也可以通过类的构造函数来初始化类属性

class MyClass 
{ 
  public int a = 10; //第一种初始化方法在定义是就赋值 
  public bool b; //默认值为false 
  public MyClass(bool c) 
  { 
    b = c; //通过构造函数初始化类属性 
  } 
} 
   
class Program 
{ 
  static void Main(string[] args) 
  { 
    MyClass mc = new MyClass(true);//通过构造函数传入true 赋给参数bool类型变量c = true 
    Console.WriteLine("mc->a :{0}", mc.a.ToString()); 
    Console.WriteLine("mc->b :{0}",mc.b.ToString()); 
  } 
}
</div>

输出结果如下:

四、静态变量
静态变量就是通过类级别去调用,无需创建类型的对象就可以用的变量。
静态变量关键字: static
定义格式: [static 数据类型 变量名]
实例代码:

using System; 
   
namespace MyProgram 
{ 
  class MyClass 
  { 
    public int a = 10; //变量a为对象级别属性 
    public static int b = 20; //变量b为类级别属性 
  } 
   
  class Program 
  { 
    static void Main(string[] args) 
    { 
      MyClass mc = new MyClass(); 
      int a_Mc = mc.a; //变量级别需要创建对象MC后通过MC(对象)来访问 
   
      int b_MyClass = MyClass.b; //类属性可直接通过类名访问无需创建对象 
   
      Console.WriteLine("mc->a :{0}", a_Mc); 
      Console.WriteLine("MyClass->b :{0}", b_MyClass); 
    } 
  } 
}
</div>

运行结果如下:

五、常量
常量就是不能被改变的变量,常量只能定义在类属性级别,常量也必须是静态的,并且在定义时就初始化赋值,常量一旦被初始化后就不可以在改变,任何对常量改变语句都将引起编译器错误。因为常量定义时就要赋值所以常量类型只能声明给值类型(值类型与引用类型下篇讲解)。
常量的定义格式: [const 数据类型 变量名]
代码:

using System; 
   
namespace MyProgram 
{ 
  class MyClass 
  { 
    public const int a = 10; //定义常量a 
    public const bool b = false; //定义常量b 
  } 
   
  class Program 
  { 
    static void Main(string[] args) 
    { 
      int a_Const_MyClass = MyClass.a; //常量必须是静态的,通过类名访问 
   
      bool b_Const_MyClass = MyClass.b; //常量必须是静态的,通过类名访问 
   
      Console.WriteLine("MyClass->a_Const :{0}", a_Const_MyClass.ToString()); 
      Console.WriteLine("MyClass->b_Const :{0}", b_Const_MyClass.ToString()); 
   
    



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C# 检索不区分大小写并高亮显示实例详解
  • C#实现Base64处理的加密解密,编码解码示例
  • C# SqlHelper应用开发学习
  • C#多线程经典示例(吃苹果)
  • C#使用Windows Service的简单教程(创建、安装、卸载、调试)
  • C# 6.0 的知识梳理
  • C#向PPT文档插入图片以及导出图片的实例
  • C#使用Jquery zTree实现树状结构显示 异步数据加载
  • C#清理非托管对象实例分析
  • C#双缓冲技术实例详解

相关文章

  • 2017-05-28C#提高编程能力的50个要点总结
  • 2017-05-28C#使用shell32获取文件属性的方法
  • 2017-05-28C#文件流进行压缩和解压缩的方法
  • 2017-05-28Windows系统中使用C#读取文本文件内容的小示例
  • 2017-05-28浅析依赖注入框架Autofac的使用
  • 2017-05-28c#反射调用方法示例
  • 2017-05-28C#实现压缩HTML代码的方法
  • 2017-05-28C#实现将网页保存成图片的网页拍照功能
  • 2017-05-28C#生成DLL文件的方法
  • 2017-05-28C#图形区域剪切的实现方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#堆排序实现方法
    • 高效C#编码优化原则
    • 算法练习之从String.indexOf的模拟实现开始
    • C# memcached缓存使用实例代码
    • C# 在PDF中创建和填充域
    • C#实现文件上传以及多文件上传功能
    • C#实现按数据库邮件列表发送邮件的方法
    • C#难点逐个击破(2):out返回参数
    • 详解C#切换窗口
    • C#设置页面单位和缩放的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有