深入C#数据类型
2016-01-29 18:10
691 查看
值类型和引用类型
常用的数据类型
整形 | int |
浮点型 | foalt |
双精度浮点型 | double |
字符串 | string |
布尔 | bool |
枚举 | enum |
值类型
值类型继承与System.ValueType类,每个值类型的对象都有一个独立的内存区域用于保存自己的值,值类型数据所在的内存区域称为栈(Stack)。只要在代码中修改它,就会在它的内存区域内保存这个值。引用类型
引用类型继承与System.Object类,在C#中引用类型主要包括数组、类和接口等。细分值类型和引用类型
值类型: 基本数据类型:
整形 | int |
长整形 | long |
浮点型 | foalt |
双精度浮点型 | double |
字符型 | char |
布尔型 | bool |
枚举类型: enum
结构类型: struct
引用类型:结构类型: struct
类:
基类 | System.Object |
字符串 | string |
自定义类 | class |
接口:interface
数组:int【】,string【】
数组:int【】,string【】
结构
结构定义访问修饰符 sturct 结构名 { //结构体 }
结构的特点:
机构中可以有字段也可以有方法
定义时结构内的字段不能被赋初值
结构的使用
结构可以不用new 直接定义结构的对象即可
声明结构的对象后必须给结构赋初值
demo:
public struct student {public int id/;IDpublic int age //年龄public void sayhi() { Console.WriteLine("学号:"+id+"年龄:"+age) } } //结构定义
public static void Main(string[] args) { student stu; stu.id=1234; stu.age=18; stu.sayhi(); } //结构调用
值方式参数传递
值方式参数传递时,参数是值类型则在调用后值不变,是引用类型时值可变引用方式参数传递
引用方式参数传递时,不管参数时值类型还是引用类型调用后值都可变demo:
值方式传递值类型参数
public void addage(int age) { age++; } static void Main(string[] args) { stu sb = new stu(); int num = 3; Console.WriteLine(num); sb.addage(num); Console.WriteLine(num); }
结果:
值方式传递引用类型参数
public class stu { public int age; public void addage(stu student) { student.age++; } } public static void Main(string[] args) { stu sb = new stu(); sb.age= 3; Console.WriteLine(sb.age); sb.addage(sb); Console.WriteLine(sb.age); }
结果:
引用方式传递值类型参数
public void addage( ref int age) { age++; } static void Main(string[] args) { stu sb = new stu(); int num = 3; Console.WriteLine(num); sb.addage(ref num); Console.WriteLine(num); }
结果:
引用方式传递引用类型参数
public class stu { public int age; public void addage( ref stu student) { student.age++; } } public static void Main(string[] args) { stu sb = new stu(); sb.age= 3; Console.WriteLine(sb.age); sb.addage( ref sb); Console.WriteLine(sb.age); }
结果:
相关文章推荐
- C#操作.ini文件
- C#调用存储过程简单完整例子
- c#之枚举
- C#导出
- c#之类型转换2
- C#写入和读出文本文件
- C#,往线程里传参数的方法总结
- 结构及其使用 struct (C#)
- 结束C#2的讲解:最后的一些特性
- 详解C#中的属性和属性的使用
- c#winform中timer的用法
- c#中判断对象为空的几种方式(字符串等)
- C#1所搭建的核心基础
- 解析C#中的常量及如何在C#编程中定义常量
- 理解C#编程中的静态类和静态成员以及密封类
- c# ftp创建文件(非上传文件)
- 深入解析C#中的abstract抽象类
- C#中图片与BASE64码互相转换
- C# HASH算法生成字符串
- 在C#的类或结构中重写ToString方法的用法简介