当前位置:编程学习 > C#/ASP.NET >>

疑惑:关于c#嵌套类的理解

-----------------------------------------------------------------------
class myline
{
  public class point
  {
   public int x;
   public int y;
  }
public point starting=new point();
public point ending=new point();
}
------------------------------------------------------------------------
1、既然定义类时,不分配空间,那么new两个成员starting、ending如何理解?
2、可否把最后两句改为,

public point starting;
public point ending;

为什么? --------------------编程问答-------------------- 声明这两个变量,肯定是作者有用到的地方
public point starting; 
public point ending; 
这样声明当然可以,但是这样声明并没有初始化,当你使用时,记得先new一下 --------------------编程问答-------------------- 汗..........

定义类不分配,但是实例化时就分配了啊

你的例子没举好,因为point正好是一个struct,所以new不new都一样
但如果是class,不new starting就是null,new了就是具体的对象了 --------------------编程问答-------------------- 这不就类似于声明一个成员变量吗 --------------------编程问答-------------------- class a
{
int b=1;//实际上就是int b=new int(1);这个int b=1你是不是就没疑问啦

} --------------------编程问答-------------------- 没有实例化吧
new是为类和结构进行实例化操作,上面的new语句可能并不是真的分配空间,只是告诉编译器到时候这么做
这么理解行得通了吧 --------------------编程问答--------------------
引用 4 楼 lerit 的回复:
class a
{
int b=1;//实际上就是int b=new int(1);这个int b=1你是不是就没疑问啦

}

写错了不好意思,
class a
{
int b=0;//实际上就是int b=new int();这个int b=0你是不是就没疑问啦

}
--------------------编程问答--------------------
引用 2 楼 cstod 的回复:
汗..........

定义类不分配,但是实例化时就分配了啊

你的例子没举好,因为point正好是一个struct,所以new不new都一样
但如果是class,不new starting就是null,new了就是具体的对象了

谁说值类型的new不new一样的,又一个误人子弟的
 struct strc
    {
public int j;
    }

strc a;
 label1.Text = a.j.ToString();

strc a=new strc();
label1.Text = a.j.ToString();
能一样吗 --------------------编程问答--------------------
引用 4 楼 lerit 的回复:
class a
{
int b=1;//实际上就是int b=new int(1);这个int b=1你是不是就没疑问啦

}

顶这个 --------------------编程问答-------------------- 这里哪来的struct???
人家的point可是class的。。。大家看清楚

楼主的问题仿佛和类是否嵌套并无直接关联。。。
在类中定义类,最大的好处是为了封装内部结构。。。 --------------------编程问答--------------------
引用 9 楼 boringame 的回复:
这里哪来的struct???
人家的point可是class的。。。大家看清楚

楼主的问题仿佛和类是否嵌套并无直接关联。。。
在类中定义类,最大的好处是为了封装内部结构。。。


顶 --------------------编程问答-------------------- 内部类和外面的类没关系
相当于在外面的类的命名空间下面的一个类而已
namespace A
{
class B
{
class C
{
}
}
}

A.B b = new A.B();
A.B.C c = new A.B.C();
这里C的命名空间就是A.B,只不过不能直接using,和B完全没关系 --------------------编程问答-------------------- 内部类可以用于数据结构的封装,
内部类是外部它的所有者类的一个成员 
因此它“知到”所有者类的其它成员包括私有成员,方法时你给这个
内部类一个所有者类的引用就可以了。这点不同可以特别提起注意一下;

至于其它 的就没什么不同了。
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,