1、类中的静态方法与非静态方法中的代码都是保存到特殊的内存区域中。
2、类中的静态字段在初始化后会被保存到内存中的某个固定区域。
代码中的classB.obj与 classB.obj是同一个对象。
public static object obj = new object();
classB.obj == classB.obj
3、类中的静态方法在调用时,才会执行代码。
代码中的每次调用classB.newB()时会生存一个新的对象,所以objA与objB不是同一个对象
object objA=classB.newB();
object objB=classB.newB();
objA!=objB;
public static object newB()
{
return new object();
}
public partial class 实例类中的方法中生存的对象是否相等 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
classA A = new classA();
classA B = new classA();
classA C = A;
if (A == C)
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(),Guid.NewGuid().ToString(),"alert('A==C');",true);
}
if ((A.newA()).Equals(B.newA()))
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), Guid.NewGuid().ToString(), "alert('A==B');", true);
}
if (classB.newB()==classB.newB())
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), Guid.NewGuid().ToString(), "alert('classB.newB()==classB.newB()');", true);
}
if (classB.obj == classB.obj)
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), Guid.NewGuid().ToString(), "alert('classB.obj==classB.obj');", true);
}
}
}
class classA
{
public object newA()
{
return new object();
}
}
class classB
{
public static object newB()
{
return new object();
}
public static object obj = new object();
}