代码之家  ›  专栏  ›  技术社区  ›  Nenad Dobrilovic

Java到C的转换

  •  0
  • Nenad Dobrilovic  · 技术社区  · 17 年前

    我需要将几个Java类转换为C#,但我遇到的问题很少。

    public abstract class AbstractObject {
        public String getId() {
            return id;
        } 
    }
    
    public class ConcreteObject extends AbstractObject {
        public void setId(String id) {
            this.id= id;
        }
    }
    

    有一些AbstractObject的实现不需要定义setId(),因此我无法在层次结构中向上移动它。

    如何使用属性将其转换为C#?可能吗?

    2 回复  |  直到 17 年前
        1
  •  3
  •   Joel Coehoorn    17 年前

    当你只提供 get Net中属性的一部分,您显式地告诉编译器此属性是只读的。这比不提供服务更重要 set . 这在vb版本的属性语法中很明显,您还必须显式声明属性为只读。

    NotImplementedException 在抽象setter中,使用适当的属性和文档对其进行修饰,以便在setter被属性重写之前没有人使用它。否则,您可能最好还是将这些作为方法,以避免Java和.Net版本之间的代码断开连接。

        2
  •  2
  •   Ant    17 年前

    here ).

    public abstract class AbstractObject {
        protected string id;
        public string Id
        {
            get { return id; }
        }
    }
    
    public class ConcreteObject : AbstractObject
    {
        public new string Id
        {
            get { return base.Id; }
            set { id = value; }
        }
    }