“ DataTable”是“ System.Data.DataTable”和“ Microsoft.Office.Interop.Word.DataTable”之间的歧义引用

时间:2018-07-18 07:09:14

标签: c# .net

在更改代码位置之前,我的代码可以正常工作。 实际上使用全名,例如 System.Data.DataTable 可以解决此问题,但是我需要这样做。谁能建议我在所有页面中解决此问题的更明智的方法。

4 个答案:

答案 0 :(得分:1)

之所以发生这种情况,是因为您同时使用了两个名称空间:

using System.Data.DataTable;
using Microsoft.Office.Interop.Word.DataTable;

两者都有一个名为DataTable的类对象。

呼叫时,例如:

DataTable table = new DataTable();

编译器无法区分您尝试调用/使用的DataTable的对象-

System.Data.DataTable下的一个或Microsoft.Office.Interop.Word.DataTable下的一个,因此也出错。 编译器要求您指定对象位于哪个名称空间,因为它无法自行确定

答案 1 :(得分:1)

System.DataMicrosoft.Office.Interop.Word有一个名为DataTable的类。因此,当您要使用DataTableSystem.Data中的Microsoft.Office.Interop.Word时,必须在代码中明确指定。

请塞隆,您认为DataTable中的System.Data比其他人更常用。然后,您可以为命名空间Microsoft.Office.Interop.Word加上别名,并修复要在DataTable中使用Microsoft.Office.Interop.Word时使用此别名的代码。这减少了代码的固定。

using DataTableWord = Microsoft.Office.Interop.Word;

var dataTable = new DataTableWord.DataTable();

答案 2 :(得分:0)

删除Microsoft.Office.Interop.Word.DataTable的引用,或者可以专门设置using语句。

using System.Data.DataTable

并删除指向参考Microsoft.Office.Interop.Word.DataTable的所有用法。

答案 3 :(得分:0)

您删除Microsoft.Office.Interop.Word.DataTable的引用或专门设置using语句。

使用System.Data.DataTable

并删除指向参考Microsoft.Office.Interop.Word.DataTable的所有用法。