2010-08-31 85 views
0

我從'System.String'無效轉換錯誤爲'WebServiceWrapper.ItemMaster'。這是我的代碼:從'System.String'無效轉換爲'WebServiceWrapper.ItemMaster'

public class ItemMaster 
{ 
    public static ItemMaster loadFromReader(string oReader) 
    { 
     ItemMaster i = (ItemMaster)Convert.ChangeType(oReader, typeof(ItemMaster)); 
     return i; 
    } 
} 
+1

你可以重新發布你的示例代碼,因爲那裏沒有任何意義。謝謝。 – ChrisBD 2010-08-31 15:47:41

+1

你爲什麼會認爲從String到ItemMaster的ChangeType會起作用? – 2010-08-31 15:49:09

+0

這裏寫的類型是ItemMaster – Pradeep 2010-08-31 16:38:31

回答

0

只能從string轉換爲ItemMaster如果在ItemMaster實現一個明確的運營商,它做的工作。

查看MSDN

編輯例如:隱 - >明確,更新的鏈接。

+1

只有在執行* explicit *操作符時才需要強制轉換。如果操作者是隱含的,那麼演員甚至不是必需的。 – 2010-08-31 17:09:52

+0

當然你是對的:)誤讀問題的使用需求。 – JanW 2010-08-31 17:59:02

0

幾個百分點......

你說的是讀者和字符串作爲如果他們互換......他們不是。

更改類型後您正在投射......這是多餘的。

您不能投ItemMasterstring除非ItemMaster已明確轉換定義。

你只需要ItemMaster.ToString()

+0

我想從字符串投射到ItemMaster,而不是其他方式 – Pradeep 2010-08-31 16:37:38

+0

對,我得到了這個,但它仍然是多餘的......您調用'ChangeType'將字符串更改爲'ItemMaster',然後投射結果作爲'ItemMaster'。而且你仍然需要對'ItemMaster'上定義的字符串進行隱式轉換。 – 2010-08-31 16:53:03

+1

我同意Pradeep的其餘代碼有問題,但調用ChangeType後的顯式轉換不是其中的一種。 ChangeType返回**對象**;爲什麼*不會*你需要明確的演員? – 2010-08-31 17:08:15

相關問題