我有一個問題,我一直在谷歌搜索,但無法找到答案。C#專業實例類
說,如果你有一類稱爲帳戶從一個叫AccountInquiry類繼承。
如果你有AccountInquiry的一個實例,你可以轉換到這個賬戶的實例沒有有效地複製它。如果不是什麼是管理這個最好的方法。
基本上有點背景的,當有人在我們的網站上一個基本的名稱/電子郵件的形式罷了,創建一個賬戶查詢,一旦他們這樣做了,他們都帶有一個第二形式。如果這個第二個表格填寫賬戶查詢被轉換成一個賬戶。
非常感謝
山姆
我有一個問題,我一直在谷歌搜索,但無法找到答案。C#專業實例類
說,如果你有一類稱爲帳戶從一個叫AccountInquiry類繼承。
如果你有AccountInquiry的一個實例,你可以轉換到這個賬戶的實例沒有有效地複製它。如果不是什麼是管理這個最好的方法。
基本上有點背景的,當有人在我們的網站上一個基本的名稱/電子郵件的形式罷了,創建一個賬戶查詢,一旦他們這樣做了,他們都帶有一個第二形式。如果這個第二個表格填寫賬戶查詢被轉換成一個賬戶。
非常感謝
山姆
它聽起來不像Account
真的是和AccountInquiry
。這聽起來更像是兩個完全分開的類,即使它們有一些相同的屬性。
在使用繼承之前要小心 - 考慮是否真的是否合適。
在這種情況下,你AccountInquiry
聽起來像它的有效搜索條件的真正Account
- 所以你可能應該有一些服務類,這是能夠執行查詢,用的方法是這樣的:
List<Account> FindAccounts(AccountInquiry inquiry)
或者如果只有一個帳戶應該匹配,可能只是一個返回類型Account
。這裏沒有「轉換」 - 你只需要使用一個對象的屬性來找到另一個對象。
(我懷疑它真的應該查詢而不是由路查詢,但這是題外話。)
謝謝你和@James,我有一種感覺,可能是這種情況,我在查詢中創建了一個Account屬性,所以刪除繼承是有道理的,我想我會把它們當作2個獨立的實體,只是將帳戶作爲查詢屬性(如果它爲空,那麼該帳戶已創建) –
我從來沒有注意到錯誤名稱中的錯字,所以非常感謝!它不會讓我接受您的答案。分鐘,但我高興地接受你的建議:) –
您只能向上轉換,如果原始類(賬戶)是從一個AccountInquiry向下轉換所以,不,這是不可能的。
複製是唯一的選擇。
你能轉換到這個賬戶的實例沒有有效地複製它
在這種情況下,沒有。 Account
可以降爲AccountInquiry
,但反之亦然。你可以使用像AutoMapper這樣的工具來更容易地映射字段。
作爲一種替代方法,您可以做的是使Account
屬於AccountInquiry
,這將完全消除問題。
你不能,但¿這個怎麼樣?
Account account = new Account();
account.CustomerID = 25;
account.MaxAmount = (decimal)5000.00;
然後
((AccountInquiry)account).Method = "ListChanges";
((AccountInquiry)account).StartDate = DateTime.Today.AddDays(-10);
((AccountInquiry)account).EndDate = DateTime.Today;
然後,如果你需要傳遞給他的參數的類型應該可以在任何方法。
不是不可能:( –
一個帳戶不是AccountInquiry,所以帳戶不應該繼承AccountInquiry,而是給Account一個構造函數接受一個AccountInquiry參數,除此之外,我不明白這個問題 – JohnB