类型或名称空间名称“ GetName”在名称空间中不存在

时间:2019-05-24 18:38:35

标签: c# namespaces console-application

以下代码在一个简单的演示中运行,但未在我的真实项目中编译。

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string AgentName = "Test";
            string SERVICE_NAME = "Agent";
            ServiceController sc = new ServiceController(AgentName);
            ServiceControllerStatus status = sc.Status;
            Debug.WriteLine(String.Format("Service {0} {1}", SERVICE_NAME, 
                // compile error this next line: 
                Enum.GetName(typeof(ServiceControllerStatus), sc.Status))); 
        }
    }
}

错误消息是:

  

名称空间中不存在类型或名称空间名称'GetName'   'UtilLibrary.Enum'

如果我将文件(在实际项目中)的顶部名称空间从UtilLibrary更改为UtilityLibrary之类的文件,则可以正常编译。似乎与GetName()有冲突,但没有冲突,搜索没有任何结果。

那么我如何留在同一个命名空间中并解决编译错误?

p.s我是C#的新手。同样,如果添加点以更改UtilLibrary.General之类的名称空间,那仍然不能解决错误。

1 个答案:

答案 0 :(得分:0)

即使不是最佳实践,也可以始终指定别名来解决命名问题

using SysEnum = System.Enum;
using LibEnum = Some.Custom.Library.Enum;

//Usage
SysEnum.GetName(typeof(ServiceControllerStatus), sc.Status)));
LibEnum.WhateverMethodIsImplementedHere();

请记住,只要是您的代码,通常最好修正命名。