C#中struct与class的区别
2015-11-28 20:05
477 查看
namespace structAndclass
{
class Program
{
static void Main(string[] args)
{
// 区别: struct 在传递的时候,传递是一个副本,并没有修改原始对象
// class 在传递的时候传递的是对原始对象的引用,修改原始对象的值
public struct StructModifyPoint
{
public int x;
public int y;
public StructModifyPoint(int x,int y)
{
this.x = x;
this.y = y;
}
public class ClassModifyPoint
{
public int x;
public int y;
public ClassModifyPoint()
{
}
20 个 C# 热点问题解答>>微软虚拟学院
{
class Program
{
static void Main(string[] args)
{
// 区别: struct 在传递的时候,传递是一个副本,并没有修改原始对象
// class 在传递的时候传递的是对原始对象的引用,修改原始对象的值
StructModifyPoint structModifyPoint = new StructModifyPoint(); structModifyPoint.y = 10; structModifyPoint.x = 10; Console.WriteLine("----------Struct--------"); // values are 10,10 Console.WriteLine("Initial values are :{0},{1}",structModifyPoint.x,structModifyPoint.y); Console.WriteLine("Insurt structChangePoint():"); // values are 20,20 structChangePoint(structModifyPoint); // values are 10,10 Console.WriteLine("After Modify,struct values are:{0},{1}", structModifyPoint.x, structModifyPoint.y); ClassModifyPoint classModifyPoint = new ClassModifyPoint(); classModifyPoint.y = 10; classModifyPoint.x = 10; Console.WriteLine("----------Class--------"); // values are 10,10 Console.WriteLine("Initial values are :{0},{1}", classModifyPoint.x, classModifyPoint.y); Console.WriteLine("Insurt classChangePoint():"); // values are 20,20 classChangePoint(classModifyPoint); // values are 20,20 Console.WriteLine("After Modify,class values are:{0},{1}", classModifyPoint.x, classModifyPoint.y); Console.ReadKey(); } //struct public static void structChangePoint(StructModifyPoint point) { point.x += 10; point.y += 10; Console.WriteLine("structChangePoint inner values are:{0},{1}",point.x,point.y); } //class public static void classChangePoint(ClassModifyPoint point) { point.x += 10; point.y += 10; Console.WriteLine("classChangePoint inner values are:{0},{1}", point.x, point.y); } } //结构体
public struct StructModifyPoint
{
public int x;
public int y;
public StructModifyPoint(int x,int y)
{
this.x = x;
this.y = y;
}
} //类
public class ClassModifyPoint
{
public int x;
public int y;
public ClassModifyPoint()
{
} public ClassModifyPoint(int x, int y) { this.x = x; this.y = y; } }
}
20 个 C# 热点问题解答>>微软虚拟学院
相关文章推荐
- c#socket
- C#中DllImport用法汇总
- C#编程实现发送邮件的方法(可添加附件)
- C#实现两个窗体之间数值传送的方法
- C#interface
- C#编程实现简易图片浏览器的方法
- C#简易图片格式转换器实现方法
- C#编程实现查看剪切板内容的方法
- C# 数据类型和字节长度
- C#与C
- C# 中常用数据类型与控件类型的命名规则
- 将NLog target设置为RichTextBox的注意事项,NLog版本4.2.1
- 一个简单的C#获取Session、设置Session类文件
- C#泛型方法约束XML序列化
- C#控制条码打印机 纸张大小,间距,绘制内容(所有条码打印机通用)
- C#基础04
- 【C#】一个方法判断整数是否是2的N次方
- Cmd命令行编译c#文件
- SICP中sqrt(开方)的实现(附C#实现)
- ClosedXML读取Excel文件