“System.Collections.IEnumerator”: using 语句中使用的类型必须可隐式转换为“System.IDisposab

如题所述

把using去掉,结尾加分号,去掉大括号,例子:纯原创,好用别忘了点赞哈,^_^

纯原创,个人经验,有问题的求尽情喷,小白一枚,好用也别忘了点赞哈,^_^

修改前:

        public DataTable ToTable()
        {
            DataTable table = new DataTable(this.Name);
            using (IEnumerator enumerator = this.Columns.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    RecordColumn column;
                    table.Columns.Add(column.Name, column.Type);
                }
            }
            for (int i = 0; i < this.Count; i++)
            {
                DataRow row = table.NewRow();
                foreach (RecordColumn column in this.Columns)
                {
                    row[column.Name] = column[i].ToObject();
                }
                table.Rows.Add(row);
            }
            return table;
        }

修改后:

        public DataTable ToTable()
        {
            DataTable table = new DataTable(this.Name);
            IEnumerator enumerator = this.Columns.GetEnumerator();
            while (enumerator.MoveNext())
            {
                RecordColumn column = null;
                table.Columns.Add(column.Name, column.Type);
            }
            for (int i = 0; i < this.Count; i++)
            {
                DataRow row = table.NewRow();
                foreach (RecordColumn column in this.Columns)
                {
                    row[column.Name] = column[i].ToObject();
                }
                table.Rows.Add(row);
            }
            return table;
        }

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-09
using会自动调用System.IDisposable下的Dispose方法来释放非托管资源,System.Collections.IEnumerator没有继承自IDisposable,所以不能用。
另外,System.Collections.IEnumerator的实例不需要手动释放,C#会自己处理的。追问

你要怎么写?求教~!

追答

不用using,直接实例化

本回答被网友采纳
相似回答