C#是否具有等效的Java静态嵌套类? - c#

我将Java转换为C#,并具有以下代码(有关其用法,请参见discussion in 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) {
    // ...
            }
        }
    }

参考方案

看看这个
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(...)或new
InnerClass(o,...)。是的,这只是一个
一堆新词。
就像我说的,只是糖。

Java:静态字段在内存中的哪个位置? - java

如果我们将对象存储在对象的静态字段中,那么JVM如何为它分配内存?它是否存在于“隐式”(不确定我是否使用正确的单词)类对象中?静态字段与对象字段有何不同? 参考方案 静态字段是类变量,并且在该类的所有实例之间共享。实例变量(或我认为您引用它们的对象字段)属于类的各个实例,并且不共享。至于它们存储在内存中的位置将根据JVM的实现而定,因此没有理由需要两个不同的…

Java-关于使用具有静态成员的类vs. - java

所以我有一个关于最佳实践的问题。基本上,我正在执行以下操作以简化访问不同类的成员的操作:class myClass1 { public static int var1; public static String var2; //... public static void method1() { //... } } 然后在其他类中,我只能使用myClass1…

字段不能是静态的? - java

该代码有错误public class DoIt { public static void main(String[] args) { final class Apple { public static String place = "doIt"; } Thread thread = new Thread(new Runnable() { …

为什么我们要在Java中将类设为静态? - java

This question already has answers here: Closed 8 years ago. Possible Duplicate: Static nested class in Java, why?我知道Java中的静态字段。但是不知道为什么我们要创建一个静态类。任何想法? 参考方案 class Outer { int a; cl…

Java-非泛型类扩展了泛型类 - java

我想知道如何(如果可能)创建一个类,它是泛型类的特定类型。具体来说,我有一个实现所有必需方法的abstract class Stack<Type>,我想有一个class StackInteger,而StackInteger的实例也是Stack<Integer>的实例。我看到我可以做这样的事情:class StackInteger { …