【问题标题】:Ambiguity between Class Variables类变量之间的歧义
【发布时间】:2012-11-02 04:34:30
【问题描述】:

我正在构建一个系统,其中我有一些与这个相同的类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// Class to handle operations at Status table
/// </summary>
public class Status
{
    #region Vars and Class Objects
    protected Dados d;
    protected string sql;
    protected Logs log;
    protected Permissoes p;
    protected List<string> Mensagens;
    #endregion

    #region Constructor e Destructor
    public Status()
    {
        d = new Dados();
        log = new Logs();
        p = new Permissoes();
        Mensagens = new List<string>();
    }

    ~Status()
    {
        d = null;
        p = null;
        log = null;
        sql = null;
    }
    #endregion
}

(Class Logs 和 Class Permissoes 具有相似的代码结构)。

在上面的代码中,VS2010 IDE 对构造函数中的所有声明都显示了以下错误:

错误文件行列 “Status.d”和“Status.d”Status.cs 22 9 之间的歧义 “Status.log”和“Status.log”Status.cs 之间的歧义 23 9 “Status.p”和“Status.p”Status.cs 之间的歧义 24 9 “Status.Mensagens”和“Status.Mensagens”Status.cs 之间的歧义 25 9 “Status.d”和“Status.d”之间的歧义 Prioridades.cs 21 9 “Status.p”和“Status.p”之间的歧义 Prioridades.cs 22 9 “Status.log”和“Status.log”之间的歧义 Prioridades.cs 23 9 “Status.d”和“Status.d”之间的歧义 Prioridades.cs 28 3 “Status.p”和“Status.p”之间的歧义 Prioridades.cs 29 9 “Status.log”和“Status.log”之间的歧义 Prioridades.cs 30 9 “Status.sql”和“Status.sql”之间的歧义 Prioridades.cs 31 9 “Status.p”和“Status.p”之间的歧义 Prioridades.cs 45 18 “Status.sql”和“Status.sql”之间的歧义 Prioridades.cs 53 5 “Status.d”和“Status.d”之间的歧义 Prioridades.cs 54 5 “Status.log”和“Status.log”之间的歧义 Prioridades.cs 58 17 “Status.p”和“Status.p”之间的歧义 Prioridades.cs 78 18 “Status.sql”和“Status.sql”之间的歧义 Prioridades.cs 86 17 “Status.d”和“Status.d”之间的歧义 Prioridades.cs 87 17 “Status.log”和“Status.log”之间的歧义 Prioridades.cs 88 17 “Status.p”和“Status.p”之间的歧义 Prioridades.cs 106 18 “Status.sql”和“Status.sql”之间的歧义 Prioridades.cs 114 17 “Status.d”和“Status.d”之间的歧义 Prioridades.cs 115 17 “Status.log”和“Status.log”之间的歧义 Prioridades.cs 116 17 “Status.p”和“Status.p”之间的歧义 Prioridades.cs 136 18 “Status.sql”和“Status.sql”之间的歧义 Prioridades.cs 137 13 “Status.d”和“Status.d”之间的歧义 Prioridades.cs 138 17 “Status.p”和“Status.p”之间的歧义 Prioridades.cs 157 18 “Status.sql”和“Status.sql”之间的歧义 Prioridades.cs 158 13 “Status.d”和“Status.d”之间的歧义 Prioridades.cs 159 26 “Status.p”和“Status.p”之间的歧义 Prioridades.cs 177 18 “Status.sql”和“Status.sql”之间的歧义 Prioridades.cs 178 4 “Status.d”和“Status.d”之间的歧义 Prioridades.cs 179 17

奇怪的是:我用同样的方法构建了另一个系统,它就像一个魅力。我只是将这些文件复制粘贴到另一个网站,我正在修改类以创建另一个系统。

有什么想法吗?闻起来像虫子……

编辑:

刚刚发现。发生了什么:我复制粘贴了 Prioridades 类,将其重命名并在 VS2010 上使用了 Refactoring。它将 ALL REFERENCES 重命名为“Prioridades”,重命名为“Status”,包括原来的类……然后一切都变得一团糟。

解决方案:使用重构时要小心。

对不起,伙计们......

【问题讨论】:

  • 为什么要有终结器?这不是 C++,你知道吗?
  • 你有重复的课程吗?它们都在同一个命名空间中吗?你清理了构建吗?
  • 伙计,你看到我已经发现了错误吗?

标签: c# asp.net .net code-behind


【解决方案1】:

有趣的是它反对 Prioridades.cs 中的“Status.d”。在我看来,Prioridades.cs 好像包含一个名为“Status”的类,而不是“Prioridades”。当您复制和粘贴类内容(或整个文件)时,请务必更改类名称。这很容易忘记做。

【讨论】:

  • 我确实改变了......并使用了重构。这就是问题所在。
猜你喜欢
  • 1970-01-01
  • 2020-11-29
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 2011-01-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多