我正在用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;
答案 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;