Generics 隐式转换-强类型datatable到datatable?

Generics 隐式转换-强类型datatable到datatable?,generics,partial-classes,Generics,Partial Classes,我不知道为什么会出现这个错误。该项目已从VS2005转换为VS2008,但仍使用2.0框架 这是我的泛型类型和约束的接口 public interface ITableAdapter<DT> where DT:System.Data.DataTable { /// <summary> /// Must be called immediately after instantiation in order to pass objects to Trans

我不知道为什么会出现这个错误。该项目已从VS2005转换为VS2008,但仍使用2.0框架

这是我的泛型类型和约束的接口

 public interface ITableAdapter<DT> where DT:System.Data.DataTable
  {
    /// <summary>
    /// Must be called immediately after instantiation in order to pass objects to TransactionHelper
    /// </summary>
    void InitializeTransactionHelper();
    int Fill(DT pDataTable);
    DT GetData();
    int Update(System.Data.DataRow[] dataRow
这是设计器定义的数据表

        /// <summary>
    ///Represents the strongly named DataTable class.
    ///</summary>
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")]
    [global::System.Serializable()]
    [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")]
    public partial class TGSP_STORAGEPOOLDataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable {

        private global::System.Data.DataColumn columnSTORAGEPOOLID;

        private global::System.Data.DataColumn columnPOOLCODE;

        private global::System.Data.DataColumn columnPOOLDESC;
那么,2005年和2008年之间发生了什么变化

谢谢,
R

我发现了这个问题的所在,但是与之相关的错误消息是完全错误的。事实证明,我在另一个文件中为datatable定义了一个分部类。然后,我使用N层dataset属性将datatable移动到另一个项目。记住这是一个转换。这就在一个项目中留下了一部分类,而另一半类在另一个项目中。当我尝试重新编译时,它抛出了隐式转换错误消息

我认为这是一个非常有趣的bug,它所涉及的消息传递使得它很难理解和纠正。我只是偶然发现它,因为我删除部分类只是因为它是空的


我在网上找不到关于这个问题的其他文档,所以我希望我的回答有意义,并能帮助其他正在拔头发的人

没有答案;您可以直接转换到DataTable吗?如果您不能直接强制转换它并绕过编译器,那么可能还有另一个问题导致您出现问题。如果可以,我不知道为什么编译器会给你出问题。我仍然不完全理解泛型的协变/逆变的含义。。。