这个winform中的form类作用范围有多大,比如说我定义了一个A类,B类,C类,A类和B类都从C类得到继承,为什么在form类可以引用A,B,C类,还有我在A类中定义了个属性public int X{GET;SET;},为什么在form类中需要先声明个private A a,然后再a=new A(),接着才能调用A类的属性啊
 
public partial class Form1 : Form
    {
        private A a;       public Form1()
        {
             a=new A();
             a.X=10;
              
        }
class A: C
   {PUBLIC INT X{GTE;SET;}
为什么不能定义了变量a后,直接调用X呢就是直接用a.x,而不写a=new A();还有为什么在form类可以直接定义A的变量a就是private A a;我是初学,如果没表达清楚敬请包涵下啊各位winformclass

解决方案 »

  1.   

    想直接调用的话 把A 定义成静态类就可以直接调用A.X
      

  2.   

    首先我想说,你的问题太多了,问的都不懂要别人怎么回答,最好还是分出来好点。
    问题不是在那个关键字partial上。
    1、X是它的属性,是对象的(不是static之类的),当然要通过对象访问,所以要new。
    2、public 的类或属性,在那里都可以访问!
    3、方法 Form1和类 A 是同级的,private A a;是成员变量,当然要定义在类的里面,方法的外面!
    你还是把成员变量、局部变量,修饰符如protected和public等搞清楚先吧。
      

  3.   

    那比如说类A和类C,它的默认情况下是什么类型的,就是只写Class A,或者Class C是public吗
      

  4.   

    1、为什么不能定义了变量a后,直接调用X呢就是直接用a.x,而不写a=new A()
    因为你把X定义成非static类型,那就必须通过实例调用,也就是必须写a=new A()2、什么在form类可以直接定义A的变量a就是private A a;
    这个道理就跟定义 int a一样的
      

  5.   

    它默认类都是internal就是整个程序集,所以都能调用,而直接用A a=new A()作用范围只是这个局部构造函数,所以要定义一个私人变量,然后在整个form类中用是吧
      

  6.   


    理解有偏差
    你可以直接private A a=new A();
    类里的字段如果没有访问修饰符,默认为private
    pirvate A a等价于A a
      

  7.   

    那么在form构造函数中直接private A a=new A()中的a的作用范围是不是只在form构造函数里啊