pet*_*ust 20 c# java static nested class
我正在将Java转换为C#并具有以下代码(请参阅Java Context中关于其使用的讨论).一种方法可能是创建一个单独的文件/类,但是有一个C#idom保留了Java代码中的意图吗?
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) {
// ...
}
}
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 75
所有 C#嵌套类都类似于Java静态嵌套类:
C#:
class Outer
{
class Inner
{
}
}
Run Code Online (Sandbox Code Playgroud)
就像Java一样:
class Outer
{
static class Inner
{
}
}
Run Code Online (Sandbox Code Playgroud)
换句话说,一个实例Inner 没有对实例的隐式引用Outer.
有没有一个Java的等效内的C#类,但是.
两种语言之间的可访问性规则有所不同:在C#中,嵌套类中的代码可以访问包含类中的私有成员; 在Java中,它是相反的.
看看这个 http://blogs.msdn.com/oldnewthing/archive/2006/08/01/685248.aspx
我正在专门看
换句话说,Java 内部类是 C# 所没有的语法糖。在 C# 中,您必须手动执行此操作。
如果你愿意,你可以创建自己的糖:
Run Code Online (Sandbox Code Playgroud)class OuterClass { ... InnerClass NewInnerClass() { return new InnerClass(this); } void SomeFunction() { InnerClass i = this.NewInnerClass(); i.GetOuterString(); } }如果您想用 Java 编写 new o.InnerClass(...),则可以用 C# 编写 o.NewInnerClass(...) 或 new InnerClass(o, ...)。是的,这只是一堆新词的移动。就像我说的,这只是糖。
| 归档时间: |
|
| 查看次数: |
9145 次 |
| 最近记录: |