疑惑:关于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语句可能并不是真的分配空间,只是告诉编译器到时候这么做
这么理解行得通了吧 --------------------编程问答--------------------
写错了不好意思,
class a
{
int b=0;//实际上就是int b=new int();这个int b=0你是不是就没疑问啦
}
--------------------编程问答--------------------
谁说值类型的new不new一样的,又一个误人子弟的
struct strc
{
public int j;
}
你
strc a;
label1.Text = a.j.ToString();
和
strc a=new strc();
label1.Text = a.j.ToString();
能一样吗 --------------------编程问答--------------------
顶这个 --------------------编程问答-------------------- 这里哪来的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#