C#编程自学之数据类型和变量一
一、数据类型与变量的介绍 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());//打印结果 } } } 分析: 首先要计算整数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的数据类型 } } } 首先看 9 ~ 10行,定义了一个整数类型的变量a赋值为20和一个字符类型的变量b为赋值为A,那么 a与b的数据类型分别为整数类型(System.Int32与System.Char). 提示:匿名类型变量在编译后确定数据类型之后,在程序作用域内该变量的数据类型不可改变! 3.变量与变量的作用域 class MyClass { int a = 10; public void MyMethod() { int a = 20; //方法内部变量与类属性变量 a同时出现时, 以当前方法内(作用域的变量为准) Console.WriteLine("a:{0}",a); //输出结果为20 int a = 30; // 编译错误,同一个作用域内不可以出现相同名称的变量 } } 三、数据类型默认值与初始化 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()); } } 输出结果如下: 四、静态变量 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); } } } 运行结果如下: 五、常量 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()); //任何试图修改常量的动作都会引起编译错误 MyClass.a = 20; MyClass.b = true; } } } 正确操作运行结果如下: 修改常量提示错误如下: 六、只读与静态只读 using System; namespace MyProgram { class MyClass { public readonly int a = 10; //定义只读变量a public static readonly bool b = false; //定义静态只读变量b } class Program { static void Main(string[] args) { MyClass mc = new MyClass(); int a_ReadOnly_MC = mc.a; //只读变量是非静态的,由对象级别访问 bool b_StaticReadOnly_MyClass = MyClass.b; //静态只读变量是类级别变量,有类名访问 Console.WriteLine("a_ReadOnly_MC : {0}",a_ReadOnly_MC); Console.WriteLine("b_StaticReadOnly_MyClass :{1}",b_StaticReadOnly_MyClass); //任何对只读类型的修改都将引起编译错误 mc.a = 20; MyClass.b = true; } } } 正确操作运行结果如下: 修改只读变量错误如下: 七、需要注意的细节 以上讲解的类的属性都代表成员变量,希望对大家的学习有所帮助。之后还有相关文章继续更新,希望大家继续关注。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |