2017-01-19 100 views
0

我想投我的目標如下圖所示:C#自定義對象無效轉換

public interface IObjectComparison 
{ 
    object GetPropertyValue(string property); 

} 

public class MyObject : IObjectComparison 
{ 
    public object GetPropertyValue(string property) 
    { 
     ... 
     return (object)...; 
    } 
} 

然後

MyObject mo = new MyObject(); 
IObjectComparison imo = (IObjectComparison) mo; 

當從MyObject鑄造IObjectComparison,我發現了一個InvalidCastException的 。爲什麼?

感謝您的幫助

+3

一旦GetPropertyValue在爲MyObject是公開的,這代碼工作正常.. – stuartd

+1

[按預期工作](https://dotnetfiddle.net/hlNlWJ),接口正確實施時沒有轉換異常。 –

+0

檢查MyObject構造函數,如果你有你的代碼。 –

回答

1

你不需要在all.Just使用拈:

MyObject mo = new MyObject(); 
IObjectComparison imo = mo; 
0

此代碼工作正常:

public interface IObjectComparison 
{ 
    object GetPropertyValue(string property); 
} 

public class MyObject : IObjectComparison 
{ 
    public object GetPropertyValue(string property) 
    { 
     return new object(); 
    } 
} 

class Program 
{ 
    static void Main() 
    { 
     MyObject mo = new MyObject(); 
     IObjectComparison imo = (IObjectComparison)mo; 
    } 

}