C# 基础

①结构和类非常的相似,例子<<C#入门经典>>

 

代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Ch09Ex03
{

class MyClass
{
public int val;
}

struct myStruct
{
public int val;
}
class Program
{
static void Main(string[] args)
{
MyClass objectA
= new MyClass();
MyClass objectB
= objectA;
objectA.val
= 10;
objectB.val
= 20;
myStruct structA
= new myStruct();
myStruct structB
= structA;
structA.val
= 30;
structB.val
= 40;

Console.WriteLine(
"objectA.val={0}",objectA.val);
Console.WriteLine(
"objectB.val={0}",objectB.val);
Console.WriteLine(
"structA.val={0}",structA.val);
Console.WriteLine(
"structB.val={0}",structB.val);
Console.ReadKey();
}
}
}

 

示例的说明

 这个应用程序包含俩个类型定义.一个是结构myStruct的定义.他有一个公共的int字段val,另一个是类的MyClass的定义,他包含一个相同的字段.接着对这两种类的实例执行相同的操作;

结果不同.同样都是给val字段赋一个值.

结果:

      对象是引用类型.在把对象赋给变量时,实际上是把带有一个指针的变量赋给了该指针所指向的对象.在实际代码中,指针式内存中的一个地址.在这种情况下,地址是内存中该对象所在的位置.在用下面的代码把第一个对象引用赋给类型为MyClass的第二个变量时,实际上是复制了这个地址.

MyClass objectB=objectA;

这样两个变量就包含同一个对象的指针.

      结构是值类型.其变量并不是半酣结构的指针.而是包含结构本身.在用下面的代码把第一个结构赋给类型为myStruct的第二个变量时,实际上是把第一个结构的所在信息复制到另一个结构中.

myStruct structB=structA;

 

posted @ 2010-09-01 14:43  ~@@~  阅读(203)  评论(0编辑  收藏  举报