以下代码在一个简单的演示中运行,但未在我的真实项目中编译。
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
之类的名称空间,那仍然不能解决错误。
答案 0 :(得分:0)
即使不是最佳实践,也可以始终指定别名来解决命名问题
using SysEnum = System.Enum;
using LibEnum = Some.Custom.Library.Enum;
//Usage
SysEnum.GetName(typeof(ServiceControllerStatus), sc.Status)));
LibEnum.WhateverMethodIsImplementedHere();
请记住,只要是您的代码,通常最好修正命名。