相关疑难解决方法(0)

定义构造函数签名的接口?

这是我第一次碰到这个问题,这很奇怪,但是:

如何在C#接口中定义构造函数?

编辑
有些人想要一个例子(这是一个空闲时间项目,所以是的,这是一个游戏)

IDrawable
+ Update
+ Draw

为了能够更新(检查屏幕边缘等)并绘制自己,它总是需要一个GraphicsDeviceManager.所以我想确保对象有引用它.这将属于构造函数.

现在,我写下来我想我在这里实施的IObservableGraphicsDeviceManager应该采取的IDrawable......看来要么我不明白的XNA框架或框架不是想出来的非常好.

编辑
在接口的上下文中,我对构造函数的定义似乎有些混乱.实际上不能实例化接口,因此不需要构造函数.我想要定义的是构造函数的签名.正如接口可以定义某个方法的签名,接口可以定义构造函数的签名.

c# constructor interface

526
推荐指数
9
解决办法
29万
查看次数

C#泛型问题 - 使用构造函数中的参数新建泛型类型

我正在尝试创建一个泛型类,其中new是泛型类的实例.如下:

public class HomepageCarousel<T> : List<T>
    where T: IHomepageCarouselItem, new()
{
    private List<T> GetInitialCarouselData()
    {
        List<T> carouselItems = new List<T>();

        if (jewellerHomepages != null)
        {
            foreach (PageData pageData in jewellerHomepages)
            {
               T item = new T(pageData); // this line wont compile
               carouselItems.Add(item);
            }
        }
        return carouselItems;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

在创建变量类型的实例时无法提供参数

我发现了以下与我需要的相关的问题:将 参数传递给模板化类型的C#generic new()

但是,我不能使用Jared建议的答案,因为我在Generic类中调用方法,而不是在它之外,所以我不能指定具体的类.

有没有解决的办法?

我已根据另一个问题尝试了以下内容,但它不起作用,因为我不知道要指定的具体类型.从泛型类中调用它,而不是在外面调用:

public class HomepageCarousel<T> : List<T>
    where T: IHomepageCarouselItem, new()
{

    private List<T> LoadCarouselItems()
    {
        if (IsCarouselConfigued)
        {
            return GetConfiguredCarouselData();
        }

        // ****** I don't …
Run Code Online (Sandbox Code Playgroud)

c# generics

20
推荐指数
3
解决办法
1万
查看次数

标签 统计

c# ×2

constructor ×1

generics ×1

interface ×1