命名空间'<global namespace =“”>'包含与别名'PersianDate'冲突的定义

时间:2015-07-02 06:36:06

标签: c# namespaces

我正在用C#开发一个winform应用程序,一切都很好。但是当我试图运行应用程序时,突然间我得到了这个奇怪的错误。

  

命名空间''包含与别名'PersianDate'冲突的定义

这是引发错误的行。

private PersianDate _quotationDate;

我在收到错误之前所做的就是添加此form_load事件。

private void frmAddDragSource_Load(object sender, EventArgs e)
 {
   this.Text = "Source";
 }

有谁知道为什么会这样,我该如何解决?

更新 我的用法:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlServerCe;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using FishTablighPro.Utility;
using PersianDate = FreeControls.PersianDate;

2 个答案:

答案 0 :(得分:3)

因为您将PersianDate定义为FreeControls.PersianDate命名空间的别名。编译器无法通过PersianDate来判断您是否引用了您创建的命名空间别名,还是指向其中定义的PersianDate类型。

尝试直接指向PersianDate 类型

private PersianDate.PersianDate _quotationDate;

答案 1 :(得分:0)

我的猜测:以下定义..

using PersianDate = FreeControls.PersianDate;

...与尝试的变量定义冲突:

private PersianDate _quotationDate;

这里,PersianDate似乎是指一个名称空间,而不是你将用于变量的类型。

如果您确实需要命名空间的快捷方式,请将其更改为其他内容,以使其不与类型冲突。否则,将整个命名空间指定为变量的PersianDate类型 - 这也应该起作用,因为它将与您的其他命名空间明显不同。

编辑:这些实际上是指同一名称空间吗?如果是这样,您可以使用:

// If you for some reason absolutely want to use an alias
// (perhaps to avoid some other naming conflict..?)
using pd = FreeControls.PersianDate;
...
private pd.PersianDate _quotationDate; 

......或者,如果没有冲突(即没有其他导入类型可用同一个类名PersianDate),只需:

using FreeControls.PersianDate;
private PersianDate _quotationDate;