我是刚刚接触asp.net的 现在遇到了一个麻烦问题 在asp.net中 我在一个类中调用另一个类的对象进行相关操作时 老是提示未将对象引用设置到对象的实例的错误 请问是怎么回事 该怎么做啊

解决方案 »

  1.   

    所调用的类怎么实例话
    我是这样做的 比如在A类中调用B类的对象Object
    B:
    A obj = new A();
    然后再用obj;
      

  2.   

    类名 实例名=new 类名([构造函数参数])
    然后用实例名.方法()或实例名.属性
    来调用即可,如果是static方法(属性)\
    直接用类名.方法(属性)调用即可
      

  3.   

    好像我就是像ismycxp说的这样做的啊 怎么还是不行呢
      

  4.   

    “/GetObject”应用程序中的服务器错误。
    --------------------------------------------------------------------------------未将对象引用设置到对象的实例。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 
    行 51:  WebShow Object = new WebShow();
    行 52:  //Object.Page_Load();
    行 53:  Object.TextBox1.Text = "I Miss You LL\r";
    行 54:  Object.TextBox1.Text = "What Happen";
    行 55:  Response.Redirect("WebShow.aspx",true);
     
      

  5.   

    WebShow();
    这个类的代码贴出来!
      

  6.   

    那里面我还什么都没写  就是在里面新加的一个Web窗体 然后改了个名字 再调用他
      

  7.   

    Object.TextBox1.Text
    应该是你这个的问题!
    可能是我菜了!我还没看到这样用TextBox的!
    不知道其他人看过没?
      

  8.   

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;namespace GetObject
    {
    /// <summary>
    /// WebShow 的摘要说明。
    /// </summary>
    public class WebShow : System.Web.UI.Page
    {
    public System.Web.UI.WebControls.TextBox TextBox1;

    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion
    }
    }
    全是自动生成的 我没有动
      

  9.   

    TextBox1
    你里面什么都没有,当然TextBox1就没有了啊!
    肯定会错了噻!
      

  10.   

    什么意思 那应该怎么用呢
    我就是要给WebShow类里面的TextBox传入值啊
    这还有什么诀窍吗
      

  11.   

    TextBox1当然是有了  我放入的一个控件 然后改成了public属性
      

  12.   

    你是在调用一个web页面的cs类!
    在你cs类里只有public System.Web.UI.WebControls.TextBox TextBox1;
    这个只是定义这么一个变量!
    而并没有将它实例化!你可能是觉得在我们做web页面,运行它的时候这样却又是可以的!你这样也会可以是吧?你这样就不行了,原因应该是vs.net的那个什么结构什么的,具体我也说不上来!
      

  13.   

    你这样传入值根本没有用,就算你在
    Object.TextBox1.Text = "I Miss You LL\r";
    Object.TextBox1.Text = "What Happen";
    这里赋值成功了!
    当你转到那个页面的时候根本就没有值,他们根本就不是同一个对象了!你要传值,就直接
    Response.Redirect("WebShow.aspx?value"+你要传的值);
    应该这样来传!或者是其他方法(Session,Cookies等)你这样是不行的
      

  14.   

    是啊 运行第一个页面是可以的
    然后调用另一个页面就出错了 
    那我应该怎么做呢 
    我发现我对这些东西真的很困惑啊
    我还应该在WebShow里面怎么将TextBox1实例化啊
      

  15.   

    哦  看来我要去补充下的东西太多了
    以前在vc和cb中我那样写都是可以的
    已经习惯了
      

  16.   

    bs和cs还是有区别的,该结帐了,给点塞
      

  17.   

    首先,你必须了解你在一个页面里面创建了另外一个页面的对象的实例的话,你要了解A obj = new A();
    里面的A()到底做了什么,你看webshow的类里面并没有A()函数,所以.net为你默认的创建了一个什么也不做的构造器,而你的textbox是在InitializeComponent();这个函数里面初始化的
    所以你的textbox也就不会实例化了,这仅仅是单从c#的语法上来分析,如果你要在页面之间传递参数的话,可以使用session,或者使用地址来传递,有很多种方法的~