输出的东西放在page里,类里面只返回string这种数据.

解决方案 »

  1.   

    Response是System.Web.UI.Page的属性, 类X必须继承自 System.Web.UI.Page
      

  2.   

    class X
    {
        public int i;
        
        public string fun()
        {
            return "OK!";  //此行为什么有错?
        }    
    }public partial class ls:System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            X x=new X();
            x.i = 15;
            Response.Write(x.fun());
        }
    }
    这样都要好很多.
      

  3.   

    或者改成: class X
    {
    public int i;public void fun(HttpResponse response)    // 注意此处
    {
    response.Write("OK!");     // 注意此处
    }
    }public partial class ls:System.Web.UI.Page
    {
    protected void Page_Load(object sender, EventArgs e)
    {
    X x=new X();
    x.i = 15;
    x.fun(this.Response);   // 注意此处
    }
    }
      

  4.   

    实在要写里面,就写全:System.Web.HttpContext.Current.Response.Write
      

  5.   

    我就不多说了,只告诉楼主一下,这样写在里面从设计上来说属于太过依赖,这样的类只能在webui里使用,如果那样的话,本身就失去封装的意义了
      

  6.   

    嗯,受用了。webform里面很够用哦
      

  7.   

    System.Web.HttpContext.Current.Response.Write或者把Page对象传给当前函数function write(Page p)
    {
       p.Response.Write()
    }
      

  8.   

    Response不会是天下掉下来的。学点编译原理,自己问自己这个问题。c#允许你省略“this.Response”前边的“this.”。尽管省略之后其实有时会造成编译器无法区分逻辑含义,例如静态变量等。你如果不是很有信心,那么任何时候都应该写“this.Response”以便让自己明白自己在使用什么对象的属性。我写程序似乎超过80%的情况下会写“this.”,因为我觉得我没有信心。
      

  9.   

    class X
    {
        public int i;
        
        public string fun()
        {
            return "OK!";
        }    
    }public partial class ls:System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            X x=new X();
            x.i = 15;
            Response.Write(x.fun());
        }
    }程序设计是权衡的艺术,确定每一个对象最适合承担什么职责,而不是想到那里写到哪里、盲目分解目标。