由於NullReferenceException,以下兩行代碼在我的程序中導致錯誤。對象引用未設置爲對象的實例...但帶有接口。 (C#)
ISceneGraphFactory factory = null;
IGroupNode Root = factory.CreateGroupNode("Root", "GroupNode", null);
這兩個都是接口。所以基本上我試圖在工廠創建第二個接口IGroupNode。 (錯誤發生在第二行)。以下是接口本身的外觀:
public interface ISceneGraphFactory
{
IDrawableNode CreateDrawableNode(string name, string DrawableType, object drawableData);
IGroupNode CreateGroupNode(string name, string groupType, object groupData);
IStateNode CreateStateNode(string name, string stateType, object stateData);
ITransformNode CreateTransformNode(string name, string transformType, object transformData);
}
public interface IGroupNode : ISceneNode, IEnumerable<ISceneNode>
{
void AddChild(ISceneNode child);
}
它們都在運行,並且已在其他程序中運行。
有沒有人知道如何擺脫這個錯誤時使用接口?我認爲這是抱怨,因爲我在這裏使用接口...
所以我可能只是創建一個虛擬對象,並這樣做?我不需要工廠對象,我只需要使用與其接口關聯的方法。 – Musicode
看起來你真的不知道接口是什麼以及它是如何工作的。不,你不能調用接口的方法,因爲它沒有分配代碼(它沒有在接口級別實現)。你需要一個實現接口的類(履行契約),因爲這就是你真正在這裏調用的。 – MarcinJuraszek
是的,這就是我的意思是與它聯繫在一起......我有IFactory工作的實現,但它的實現只是返回其他接口。 – Musicode