标签:
打个比方:值类型相当于现金,拿出来就可以花,引用类型相当于银行卡,必须拿着银行卡去取出钱,然后花,所以值类型比引用类型执行的更快一点。
言归正传:
c#值类型有以下三种
整型,布尔型,字符型,浮点型,小数型
int popstar = 8;
bool popstar = true; //定义一个布尔类型的变量并赋值为true bool popstar1 = (1 < 2); //定义一个布尔类型的变量并为之赋值,它的值是表达式(1<2)的结果
char popstar=‘p‘; //给一个字符变量赋值
decimal popstar = 1.2m;
一个结构类型可以声明构造函数,常数,字段等。尽管列出来的功能像一个类一样,但结构是值类型,类是引用类型。使用结构的主要思想是创建小型的对象,我的 理解便是:其实结构和类的作用是一样的,只不过如果内容(字段,方法)太多的时候,我们使用类,因为类是引用类型,我们可以将这个类放在别处,用的时候 拿进来,很方便;相反,如果内容(字段,方法)较少的时候便可以使用结构体,因为我们不需要引用了,直接和主体函数放在一块就ok。
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication3 { struct popstar { public string firstname; //姓字段 public string secondname; //名字段 public popstar(string m, string n) //构造函数 { firstname = m; secondname = n; } } class Program { static void Main(string[] args) { popstar p = new popstar("张", "三"); Console.WriteLine(p.firstname+p.secondname); Console.ReadKey(); } } }
输出结果:张三
是一个由指定常量集合组成的独特类型;
(1)默认情况下,枚举元素是int型,且第一个元素为0,每一个连续的元素按1递增。
enum MonthNames { January,February,March,April}; //定义一个枚举,包含1-4月
(2)如果想给第一个元素赋值,可以按如下方式设置为1:
enum MonthNames { January=1,February,March,April}; //定义一个枚举,包含1-4月
(3)如果想给每一个赋值也可以-可以使相同的值,但元素名不可以相同
enum MonthNames { January=23,February=2,March=33,April=2}; //定义一个枚举,包含1-4月
class Program { static void Main(string[] args) { Console.WriteLine((int)MonthNames.January); Console.ReadKey(); } }
(4)也可以使用不同于int的数据类型
enum MonthNames:byte { January=2,February=33,March=23,April=33}; //定义一个枚举,包含1-4月
不过枚举使用的类型仅仅限于long 、int、short、byte.
在C#中引用类型包括:
对象类型是所有类型之母,她是其他类型最根本的基类,所以可以把任何类型的值付给它。
object popstarInt = 123; //将整型赋给object变量 object popstarChar = ‘p‘; //将字符型赋给object变量 object popstarString = "popstar"; //将字符串赋给object变量 object popstarBool = true; //将bool值赋给object变量
类(class)类型是一个很神奇的类型,主要有属性和方法两个元素。属性就是这个类包含的一些数据类型的变量,方法是这个类包含的动作。
类还有构造函数和析构函数,构造函数是用来开辟一块内存来存放类的实例,析构函数是用来把这块内存销毁。下面是一个简单的用户类:
public class User { string username; //用户名 int age; //姓名 bool sex; //性别 public string Getusername() { return username; } }
在此只简单地介绍类类型,面向对象后面还要详细学习。
接口:就是仅仅声明了但没有去实现,相当于一片文章的大纲,但没有具体内容。每个人都可以用这个大纲写进自己的内容。接口就是为了规范化,将大纲统一起来。
对于程序猿呢,就可以使用接口中统一的方法名,去实现各自不同功能的方法。
一个接口可以派生多个类,一个类也可以继承于多个接口,但一个类只可以有一个基类。接口简单使用如下:
1 interface Iface 2 { 3 string GetMyName(); 4 } 5 class popstar :Iface 6 { 7 string popstarName = "popstar"; 8 public string GetMyName() 9 { 10 return popstarName; 11 } 12 } 13 class Program 14 { 15 16 static void Main(string[] args) 17 { 18 popstar people = new popstar(); 19 Console.WriteLine(people.GetMyName()); 20 21 Console.ReadKey(); 22 }
字符串数据类型当然是用来保存字符串的。它继承自object,而且是被密封的。
string myName = "popstar"; //声明一个字符串类型的变量并为其赋值 string add = "I" + "love" + "you"; //将三个字符串合并为一个字符串赋给add char p = add[0]; //取出add字符串中的第一个字符赋给p字符变量 Console.WriteLine(p);
数组是可以容纳多个元素的类型,但是容纳的元素必须是同一种类型,如定义了一个int[]的数组,则数组里面只能存放int型的元素。
数组一个比较重要的概念就是“维数”,定义数组的方法有以下几种:
int[] intArr = {1,12,2}; int[] intArr1 = new int[] { 1,1,1,11,2,2}; //不定长 int[] intArr2 = new int[3] { 1,2,3}; //定长 int[,] intArr3 = new int[,] { {1,1,3},{2,2,3}}; //不定长 int[,] intArr4=new int[2,2]{{1,1},{2,2}}; //定长
标签:
原文地址:http://www.cnblogs.com/popstar8866/p/4206919.html