我可以将枚举复制到c#中的另一个命名空间吗?

时间:2017-03-17 00:48:09

标签: c# enums

假设我正在创建一个utils库,除此之外我还有一个涉及键输入的类:

public class KeyInput {

  ...

  public bool IsKeyPressed(Keys key) {
    // determine and return whether that key is pressed
  }

  ...

}

Keys enum位于标准库中,但我正在尝试创建此库,以便用户甚至不必触摸它之外的任何内容,包括标准库(如果可以的话)(或者至少不是做任何这些工具用于的目的)。我可以使用Enum.TryParse()并让用户根据他们想要的密钥放入一个字符串,但如果我真的可以有一个枚举它会更好。我真正想要的是System.Windows.Forms.Keys的副本,它有一个隐式转换它,或者某种方式来使它,以便每当有人使用我的命名空间时,它包含System.Windows.Forms.Keys枚举。有没有办法做到这一点(或有效的东西)?

1 个答案:

答案 0 :(得分:0)

我还不能评论,所以把它放在这里。 我理解你为什么希望在你的类/命名空间代码中使用它,以便当有人使用它时,它们不必包含任何其他用途。

检查命名空间内是否包含include或using语句,请参阅此处的差异:Should 'using' statements be inside or outside the namespace?

也许在此课程中包含转化的所有功能,以便最终用户需要使用它时,所有功能都在内部您的课程中处理。

有两种选择:

  1. 因此,将用户可能在课堂内所需的所有转化和功能放入其中,使用它几乎就像包装一样。从而无需用户包含另一个库。
  2. 让类输出枚举,然后如果用户使用var output = className.func();,则不需要包含库。