이 열거 형 확장 메서드가 표시되지 않는 이유는 무엇입니까? (나는 내가 미쳤다고 생각한다).이 열거 형 확장 메서드를 "볼"수없는 이유는 무엇입니까?
File1.cs
namespace Ns1
{
public enum Website : int
{
Website1 = 0,
Website2
}
}
File2.cs
using Ns1;
namespace Ns2
{
public class MyType : RequestHandler<Request, Response>
{
public override Response Handle(Request request, CRequest cRequest)
{
//does not compile, cannot "see" ToDictionary
var websites = Website.ToDictionary<int>();
return null;
}
}
//converts enum to dictionary of values
public static class EnumExtensions
{
public static IDictionary ToDictionary<TEnumValueType>(this Enum e)
{
if(typeof(TEnumValueType).FullName != Enum.GetUnderlyingType(e.GetType()).FullName) throw new ArgumentException("Invalid type specified.");
return Enum.GetValues(e.GetType())
.Cast<object>()
.ToDictionary(key => Enum.GetName(e.GetType(), key),
value => (TEnumValueType) value);
}
}
}
그것이 = WebSite.Website1 웹 사이트 웹 사이트 없을 겁니다; 열거 형인가요? – btlog
@btlog : 둘 다 유효합니다. 이 경우 그는 실제 값을 사용하지 않으므로 아무런 차이가 없습니다. –
@btlog :'new Website()'는 기본 값인 0을 기본 값으로하는'Website.Website1'과 동일한 결과를 제공합니다. 그러나이 구문은 권장하지 않습니다 :-) –