才开始学C#,提个初级问题请大家不要笑话啊.
是这样的,对于 int i;跟 int i = new int();的区别是不是就是后者调用了默认的构造函数,相当于int i = 0;啊?
还有,如果没有new一下的话,变量拿来用会不会有问题啊,比如Class1 MyClass; 然后直接用MyClass.method(),会不会有问题啊.是不是非要Class1 MyClass = new Class1;才行咧?

解决方案 »

  1.   

    new是声明了一块内存空间给这个对象
    比如Class1 MyClass; 然后直接用MyClass.method(),会不会有问题啊.是不是非要Class1 MyClass = new Class1;才行咧?
    对于这部分,可以直接用类名调用,但是前提是你的方法为静态的!!!!!
    调用一个类中的方法通常是先实例化一个它的对象,再用对象调用方法!
    int i;跟 int i = new int();
    前者没有为它分配内存空间
      

  2.   

    int i = new int();完全等效于int i=0;,因为int的默认构造函数就是赋默认值0...
      

  3.   

    new 关键字,用于创建一个新类
      

  4.   

    int i = new int();中的int i是在栈上划一块空间给 i ,你new一个int(),就会执行int的构造函数对i进行初始化得到i为0,于是就会在刚刚划出的空间里面放上0,这个过程就完成了。int i = new int();跟int i;不一样,前者你可以直接调用i,它相当于int i=0;而后者只是声明一个叫i的int类型变量,它并没有被赋值。
    Class1 MyClass = new Class1();跟int i = new int();差不多不同的地方在于栈上的空间里面放的东西不一样,它你面放的是 Class1();在堆上的地址。
      

  5.   

    new关键字
    作为运算符, 用于创建对象和调用构造函数。 
    作为修饰符,用于向基类成员隐藏继承成员。 
    new一个class时,new完成了以下两个方面的内容:一是调用newobj命令来为实例在托管堆中分配内存;二是调用构造函数来实现对象初始化。 
    new一个int时,new运算符用于初始化其值为0