命名空间'<;全局命名空间>';包含与别名';PersianDate';

本文关键字:命名空间 别名 PersianDate 全局 lt gt 包含 | 更新日期: 2023-09-27 18:00:41

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

命名空间'<;全局命名空间>';包含与别名';PersianDate';

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

尝试直接指向PersianDate类型:

private PersianDate.PersianDate _quotationDate;

我的猜测:以下定义。。

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;