제네릭에 대해 깊이 이해하고 있으며 이제 도움이 필요한 상황이 있습니다. 제목 제목에 표시된 것처럼 아래 '파생'클래스에서 컴파일 오류가 발생합니다. 이 게시물과 비슷한 다른 게시물이 많이 있지만 관계가 보이지 않습니다. 누군가이 문제를 해결하는 방법을 말해 줄 수 있습니까?
using System;
using System.Collections.Generic;
namespace Example
{
public class ViewContext
{
ViewContext() { }
}
public interface IModel
{
}
public interface IView<T> where T : IModel
{
ViewContext ViewContext { get; set; }
}
public class SomeModel : IModel
{
public SomeModel() { }
public int ID { get; set; }
}
public class Base<T> where T : IModel
{
public Base(IView<T> view)
{
}
}
public class Derived<SomeModel> : Base<SomeModel> where SomeModel : IModel
{
public Derived(IView<SomeModel> view)
: base(view)
{
SomeModel m = (SomeModel)Activator.CreateInstance(typeof(SomeModel));
Service<SomeModel> s = new Service<SomeModel>();
s.Work(m);
}
}
public class Service<SomeModel> where SomeModel : IModel
{
public Service()
{
}
public void Work(SomeModel m)
{
}
}
}
컴파일 오류가 발생하지 않습니다
—
Vince Panuccio
이 코드는 해당 오류를 표시하지 않습니다. 깨끗하게 컴파일합니다.
—
Marc Gravell