c# 内部类实例化!在静态和非静态方法中实例化内部类方法上有什么不同呢能不能举个例子!

c#内部类实例化!在静态和非静态方法中实例化内部类方法上有什么不同呢能不能举个例子!这个主类和内部类都是非静态,是指实例化这个类时使用非静态方法和用非静态方法时有什么不一... c# 内部类实例化!在静态和非静态方法中实例化内部类方法上有什么不同呢能不能举个例子!
这个主类和内部类都是非静态,是指实例化这个类时使用非静态方法和用非静态方法时有什么不一样的地方.如java里面是在非静态方法实例化内部类直接用内部类 a=new 内部类();在用静态方法时是主类.内部类 a = new 主类().new内部类(); 我想问的是c#也是这样实例化吗?书上有个静态方法实例化一个非静态类时 主类.内部类 a = new 主类.new内部类(); new主类后面的()没了。这个和JAVA的有点不一样?
展开
 我来答
Ben
推荐于2016-10-01 · 知道合伙人软件行家
Ben
知道合伙人软件行家
采纳数:860 获赞数:2875
认真回答者.

向TA提问 私信TA
展开全部
没有什么不同.不同是调用以及内存空间分配..在访问权限一致的情况下.
也就是PUBLIC或者PRIVATE这样的修饰符一样的情况下.
静态类与方法会在编译时直接寄存于内存中

另外注意哦~!
静态类无法实例化,方法直接使用.
但是动态类静态方法.是可以实例化的

静态的类在内存中是一直有位置的,所有的用户调用方法的时候如果都使用这个类中的某个变量...

一般类在实例化后是在内存中是独立的,他的变量不会重复,在使用后会及时销毁,所以不会出现未知的错误,在c#中静态的成员是比较敏感的东西,在不是十分确认的情况下不要使用
追问
问题补充:这个主类和内部类都是非静态,是指实例化这个类时使用非静态方法和用非静态方法时有什么不一样的地方.如java里面是在非静态方法实例化内部类直接用内部类 a=new 内部类();在用静态方法时是主类.内部类 a = new 主类().new内部类(); 我想问的是c#也是这样实例化吗?书上有个静态方法实例化一个非静态类时 主类.内部类 a = new 主类.new内部类(); new主类后面的()没了。这个和JAVA的有点不一样?
追答
这样.如果书上写的是a = new 主类.new内部类() 那么就说明这个主类中含有这个子类.也就是内部类
这里跟JAVA完全不一样
因为JAVA认为只有有了主类这个对象你才能访问这个主类中的其他任何内部类,或内部方法.
而C#不一样
他可以人为你是直接跳过主类,去访问内部类.
这里的C#似乎是带了一点点把内部类认为是子类的概念(记住.这个概念是不对的.只不过是有这个趋向.跟这个类似!绝对没有什么内部类是子类的任何概念)

另外.
C#亦可认定他为命名空间.
这里跟JAVA是不一样的.
他人为你只是把这个类放在了命名空间为主类的下面而已
i_g_1988
2012-11-06 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:194
采纳率:100%
帮助的人:45.1万
展开全部
静态的不用实例化,就是在内存中存在的,可以直接调用的。非静态的话你要new一个新的实例以使内存分配空间,这样才能调用
追问
问题补充:这个主类和内部类都是非静态,是指实例化这个类时使用非静态方法和用非静态方法时有什么不一样的地方.如java里面是在非静态方法实例化内部类直接用内部类 a=new 内部类();在用静态方法时是主类.内部类 a = new 主类().new内部类(); 我想问的是c#也是这样实例化吗?书上有个静态方法实例化一个非静态类时 主类.内部类 a = new 主类.new内部类(); new主类后面的()没了。这个和JAVA的有点不一样?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sinotechyoung
2012-11-06
知道答主
回答量:4
采纳率:0%
帮助的人:3.1万
展开全部
类的静态方法 定义后就存在了 属于这个类。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
就等开学a2
2012-11-06 · 超过32用户采纳过TA的回答
知道答主
回答量:176
采纳率:25%
帮助的人:38.2万
展开全部
没明白你说的什么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式