我是學習C#的新手,並且來自C++背景。我使用的是別名以下列方式:使用別名時不能隱式轉換類型錯誤
using CreationFunction = Func<Microsoft.Xna.Framework.Vector2, GAShooter.Entity>;
然後在我的班級我有一本字典,像這樣:
private Dictionary<String, CreationFunction> creators;
然而,當我試圖在這樣的contstructor對其進行初始化:
creators = new Dictionary<String, CreationFunction>();
我得到一個錯誤。它說它不能隱式轉換類型。是什麼賦予了?
編輯:全碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CreationFunction = Func<Microsoft.Xna.Framework.Vector2, GAShooter.Entity>;
namespace GAShooter
{
class EntityFactory
{
private Dictionary<String, CreationFunction> creators;
public EntityFactory()
{
creators = new Dictionary<String, CreationFunction>();
}
public void RegisterCreator(String name, CreationFunction function)
{
creators[name] = function;
}
public Entity Create(String name)
{
var creator = creators[name];
return creator();
}
}
}
和錯誤的全文爲:
不能隱式轉換類型
'Dictionary<string,Func <Microsoft.Xna.Framework.Vector2, GAShooter.Entity>
鍵入'Dictionary<String, CreationFunction>'
什麼是錯誤的全文?這應該工作。 – SLaks 2015-03-02 20:56:52
提供錯誤消息的確切文本,以及完整的代碼示例並演示所描述的問題。 – Servy 2015-03-02 20:57:13
@RufusL請確保您的編輯不會使問題變得更糟,通過將其轉換爲引用,您可以移除查看< >標記中的內容的能力。 – 2015-03-02 21:08:00