我的Java转换成C#和有下面的代码(见在Java的语境下讨论有关其使用)。 一种做法是创建一个单独的文件/类,但有其保留在Java代码意图的C#IDOM?
public class Foo {
// Foo fields and functions
// ...
private static class SGroup {
private static Map<Integer, SGroup> idMap = new HashMap<Integer, SGroup>();
public SGroup(int id, String type) {
// ...
}
}
}
这给看看http://blogs.msdn.com/oldnewthing/archive/2006/08/01/685248.aspx
我在专门找
换句话说,Java的内部类是语法糖是不可用C#。 在C#中,你必须做手工。
如果你愿意,你可以创建自己的糖:
class OuterClass { ... InnerClass NewInnerClass() { return new InnerClass(this); } void SomeFunction() { InnerClass i = this.NewInnerClass(); i.GetOuterString(); } }
当你想在Java中新o.InnerClass(...)来写,你可以在C#或者o.NewInnerClass(...)或新写将InnerClass(O,...)。 是的,它只是一堆移动新字左右的。 就像我说的,这只是糖。
所有的 C#嵌套类是像Java静态嵌套类:
C#:
class Outer
{
class Inner
{
}
}
就像Java的:
class Outer
{
static class Inner
{
}
}
换句话说,实例Inner
不必的一个实例的隐式引用Outer
。
没有在C#中一个Java 内部类相当于虽然。
可访问规则是两种语言之间有所不同,但:在C#中的嵌套类的代码可以访问包含类的私有成员; 在Java中它是倒过来。