.net中静态与非静态的区别

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();
}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值