假設我正在做一個utils的圖書館,並在其他的事情,我有它涉及鍵輸入一個類:我可以在c#中將枚舉複製到另一個名稱空間嗎?
public class KeyInput {
...
public bool IsKeyPressed(Keys key) {
// determine and return whether that key is pressed
}
...
}
鑰匙枚舉是在標準庫,但我試圖使這個庫,以便用戶不必觸及它之外的任何東西,包括標準庫(如果可以的話)(或者至少不要做這些utils的用途)。我可以使用Enum.TryParse()
,並且讓用戶根據他們想要的鍵輸入一個字符串,但如果我實際上可以擁有它的枚舉,那將更加可取。我真正想要的是System.Windows.Forms.Keys
的一個副本,它有一個隱式轉換,或者可以採用某種方式使其成爲當有人使用我的名稱空間時,它包含System.Windows.Forms.Keys
枚舉。有沒有辦法做到這一點(或有效的相同)?
我很困惑爲什麼有人使用你的庫不能簡單地使用System.Windows.Forms.Keys如果他們需要它。 –
鍵入,from _where_?在這種努力避免使客戶端代碼引用'System.Windows.Forms.dll',你是否也徹底改造了消息循環,鍵盤輸入處理等?如果是這樣,那麼爲什麼不直接定義你自己的'enum'類型,特別適合你自己的實現呢?如果沒有,那麼你的客戶端的代碼仍然有對該DLL的引用,你可以使用'Keys'枚舉。你在這裏試圖解決什麼_problem?你的問題沒有太大的意義。 –
正如@DavidGreen所指出的那樣,用戶可以使用'System.Windows.Forms.Keys',但我的目標是使它在導入我的名字空間時不需要爲我的庫導入任何其他內容功能齊全。正如@PeterDuniho所說,我可以創建自己的專用枚舉,但這是很多輸入,甚至更多的是從'System.Windows.Forms.Keys'進行轉換(我需要的是因爲我的輸入類監聽關鍵事件從窗體)。 – Anonymous