我用了个用户控件,要在页面里改变用户控件的属性  我将控件申明为protected类型的时候可以改变属性   申明为private的时候显示未将对象引用到什么什么的实例这里的protected和private为什么会出现这样的异常

解决方案 »

  1.   

    private声明的东西只有本类中的成员才可以访问
      

  2.   

    Protected、Private在本类中访问的时候,都能够访问;在非本类中就都不能访问。可是Protected在继承类中也能够访问,而Private在继承类中就不能访问。例如:
    public class A
    {
        private int i;
        protected int j;}public class B : A
    {
        public void print()
       {
            //Response.WriteLine(i);
            //这个i就不行,无法访问。
            Response.WriteLine(j);
        }
    }
      

  3.   

    楼主为什么不先去搞清楚private、protected分别是什么意思。
      

  4.   

    哦,可能是这个楼主还不知道:aspx文件会被动态编译成一个类,并从代码隐藏的cs文件中定义的第一个类中继承,并且,在这个动态生成的类中,会将页面上所有的顶级控件映射到基类的成员上,即类似于下面的代码:TextBox1 = this.FindControl( "TextBox1" );
      

  5.   

    比如你在a.cs中定义
    using System;namespace Db
    {
    /// <summary>
    /// a 的摘要说明。
    /// </summary>
    public class a
    {
    public a()
    {
    //
    // TODO: 在此处添加构造函数逻辑
    //
    } protected static string x="1";
    }
    }那么你在b.cs中就可以这样使用x。
    using System;namespace Db
    {
    /// <summary>
    /// b 的摘要说明。
    /// </summary>
    public class b:a
    {
    public b()
    {
    //
    // TODO: 在此处添加构造函数逻辑
    //
    } public string y(string y)
    {
    y = x.ToString();
    return "1";
    }
    }
    }