当前位置: 首页 > 面试题库 >

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

裴实
2023-03-14
问题内容

我将Java转换为C#,并具有以下代码(请参阅JavaContext中有关其使用的讨论。一种方法可能是创建一个单独的文件/类,但是是否有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(…)或新的InnerClass(o,…)。是的,这只是一堆新词。就像我说的,只是糖。



 类似资料:
  • 问题内容: 如何在Java中解码使用HttpServerUtility.UrlTokenEncode在C#中编码的字符串? 问题答案: 我尝试使用(ctor接受一个参数,说明编码/解码是否是url安全的),但事实证明它的实现方式与UrlTokenEncode / Decode不同。 我最终将C#实现迁移到Java:

  • 问题内容: 我想在嵌套的静态接口中使用泛型类。我的目标是做这样的事情: 但是我得到一个错误:无法对非静态类型T进行静态引用。如果进行一些更改(如下所述),我可以在接口内部使用泛型,但是我想避免使用此方法,因为编写同一个类两次:一次用于MyClass,一次用于MyInterface。 谢谢。 编辑 :我想这样做: 要么 问题答案: 静态嵌套类或嵌套接口(顺便说一句,始终是静态的)与其外部类(或接口)

  • 问题内容: c#是否具有Java Runnable接口的等效项? 如果不能,那么如何实现?或者根本不需要? 谢谢。 问题答案: 不。C#处理线程的方式与Java不同。您不必创建Thread类的子类,而只是创建一个新的System.Threading.Thread对象,并向其传递ThreadStart委托(这是工作所在的函数)。

  • 问题内容: 我来自c#领域。 在C#中,我可以使用动态类http://msdn.microsoft.com/zh- cn/library/dd264741.aspx 这使我不必使用模板/泛型类,而可以针对certian情况获得类似的感觉。 不幸的是,“动态”和“ java”关键字在动态架构上出现了许多不相关的信息,因此我在互联网搜索中一直不成功。 我在javaFX中涉猎了一点,并且有一个var类型

  • 问题内容: 我知道我们可以使用Java中的方法通过指定其位置来获取字符串中的单个字符。C#中有等效的方法吗? 问题答案: 您可以像数组一样索引C#中的字符串,然后在该索引处获取字符。 例: 在Java中,您会说 在C#中,您会说

  • 本文向大家介绍C#是否等效于Java的Thread.setDaemon?,包括了C#是否等效于Java的Thread.setDaemon?的使用技巧和注意事项,需要的朋友参考一下 与Java的Thread.setDaemon等效的C#是前台线程和后台线程的概念。 当前台线程关闭时,后台线程将终止。前台线程继续运行,直到最后一个前台线程终止。 用于后台线程的属性是IsBackground,该属性获取